SSH隧道远程连接局域网的电脑

背景:我有一台公网ip的Ubuntu服务器,地址是:8.137.100.101,内网地址是:192.168.3.100。另外我有一台Windows 10的电脑打开了远程桌面登录,内网地址是:192.168.3.50。我想在任意的电脑上通过8.137.100.101来远程连接Windows10电脑。(无需安装任何程序,也无需提前配置)

方案:

如果有一台具有公网IP地址(8.137.100.101)的Ubuntu服务器和一个位于同一内网(192.168.3.x)的Windows 10电脑,可以通过SSH隧道来实现远程连接到Windows 10电脑。

1.在Windows 10电脑上开启远程桌面

  • 确保远程桌面功能已开启。
  • 记下Windows 10电脑的内网IP地址(192.168.3.50)。

2.在Ubuntu服务器上设置SSH隧道

  • 确保您的Ubuntu服务器上安装了SSH服务。
  • 在任意外部电脑上,使用SSH命令创建到Ubuntu服务器的隧道,并将流量转发到Windows 10电脑的远程桌面端口。命令示例:
  • ssh -L [本地端口]:192.168.3.50:3389 [Ubuntu用户]@8.137.100.101
    # 例如
    ssh -L 8888:192.168.3.50:3389 root@8.137.100.101
    

    这里,[本地端口]可以是选择的任意未被占用的端口,例如8888

3.通过SSH隧道连接

  • 在同一台电脑上打开远程桌面连接工具。
  • 连接到localhost:[本地端口],例如localhost:8888
  • 输入Windows 10的登录凭据。
### VSCode SSH 远程连接局域网服务器教程 为了实现VSCode通过SSH远程连接至非局域网内的Linux服务器,需完成几个重要配置环节。确保目标服务器具备可被外部访问的条件至关重要。 #### 一、准备阶段 确认远程Linux服务器已安装并启动了OpenSSH Server服务[^1]。对于Ubuntu系统而言,默认情况下该服务即为`openssh-server`包的一部分。可通过命令行工具检查其状态和服务版本号: ```bash sudo systemctl status ssh ``` #### 二、设置公钥认证机制 建立安全的身份验证方式是必要的。推荐采用基于密钥对的安全登录方法代替传统的密码输入模式。具体操作如下: - 在客户端机器上生成一对RSA类型的私钥和公钥文件; - 将生成好的公钥上传至远端主机对应用户的`.ssh/authorized_keys`文件中; 此过程可以借助`ssh-keygen`以及`ssh-copy-id`这两个实用程序简化执行流程[^2]。 #### 三、调整防火墙规则允许SSH流量进入 如果存在防火墙阻挡,则需要适当放宽策略以便让来自特定位置或任意地方(视安全性需求而定)的数据包能够顺利抵达目的端口(默认为TCP 22)。这一步骤通常涉及到修改iptables或其他形式的网络过滤器设定。 #### 四、利用Port Forwarding/NAT映射技术解决内网穿透难题 当面对位于NAT之后的目标设备时,直接发起连接请求可能会遇到障碍。此时便要依靠路由器提供的端口转发功能或者是第三方服务平台所提供的动态域名解析加隧道代理方案来间接达成通信目的。 #### 五、配置Visual Studio Code环境 最后,在本地计算机上的VSCode编辑器里添加新的Remote-SSH Target条目,并按照提示填写相应的地址信息即可开始调试工作空间中的项目文件。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值