小想法 | 基于VSCode和ssh实现远程编程/炼丹

本文介绍了如何使用VSCode和ssh实现远程内网服务器编程。通过设置内网服务器A的反向代理,公网服务器B的免密登录以及在任意主机C上访问A的配置,详细讲解了ssh的高级用法,包括autossh保持连接和开机自启。最后,指导了VSCode的远程开发配置,实现高效远程编程。
摘要由CSDN通过智能技术生成

首发于我的博客
https://miaotony.github.io/2019/12/21/Idea_RemoteProgramming/
欢迎来我的博客转一转呀~
转载请注明来自MiaoTony并附上上面的原文链接,谢谢!

Cause

在内网有一台服务器,能连接外网但由于没有公网 IP 而无法在外网直接访问,之前想要在上面跑程序的时候,就得通过远程桌面进行操作。虽然 Teamviewer 速度还可以,但总感觉有点不太爽……

很久以前(大概一两个月前)就在逼乎上看到过一篇文章说可以

使用vscode进行远程炼丹 (原文见 Reference #1

噫!我来兴趣了,而且其实早就想试试了,然而之前在忙别的没空折腾~~(其实现在也没空),就是前几天在配服务器环境的时候(麻烦到爆炸,最讨厌配环境了)~~,一想干脆就再折腾一下,弄好远程炼丹(编程)吧。

于是乎就这样连Linux命令都不知道几个的憨憨瞎折腾了一两天的ssh,终于实现了远程炼丹,贼有成就感嘻嘻嘻

其中遇到了一些奇怪的问题,简单记录一下,也方便我忘了再回来看看吧。

时间有限,VSCode的部分就大概提一下思路,重点是ssh的部分吧……

Guidance for ssh

不妨假设如下,记清楚了噢,后面频繁用到的

computer IP/address info
内网服务器A 172.x.x.x 可以访问外网,但外网不能直接访问A
公网服务器B test.com 可以访问外网,也可被外网访问
能够联网的主机C - 想要在C上对A进行访问

内网服务器A上的设置

A设置反向代理到B的 port1 端口

工作原理:
1、本地主机和远程主机建立连接;
2、远程主机上分配了一个 socket 侦听 port 端口;
3、远程端口上有了连接, 该连接就经过安全通道转向本机的端口。

备注:root 登录远程主机才能转发特权端口。

ssh -fCNR <port1>:localhost:22 usr_b@test.com -p 22

-R port1:host:port2 将远程机器的端口映射到本地。port1是公网服务器B的端口,host为本地A的IP,port2是A要映射到公网的端口。
usr_b@test.com 用户名@服务器B地址,表示连接到B,以用户usr_b登录。当然test.com也可以是IP地址啦。
-f SSH客户端在后台运行
-C 允许压缩
-g 允许远程主机可远程访问,这里有坑。 (但autossh没有这个选项所以应该影响不大)
-N Do not execute a shell or command. 不执行脚本或命令,通常与-f连用。
-p 22 表示指定连接到B的22端口,默认就是22啦,如果不是的话设置成B的ssh端口。

注意一下,*(网上说)*这里有个坑,-g还需要在公网服务器B做下面的设置,设置完后再重启服务。


                
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值