首页 >> 大全

外部网络SSH访问公司内网服务器终极解决方案(实现SFTP直连内网)

2023-10-29 大全 26 作者:考证青年

最近工作中中遇到了这样的情况,公司内部搭建了一台测试服务器作为测试环境使用。

某天请假回家,公司测试服务器出了问题,公司的小伙伴无法使用测试环境测试。

这个时候就想,能否在外部也能访问公司的服务器。

解决办法

利用外网服务器以及反向SSH搭一条通道,就可以利用外网的服务器登录内网的服务器。

两台服务器配置

名称IP

内网服务器

192.168.0.201

外网服务器

100.100.100.100

外网服务器我用的是阿里云服务器。

建立通道

在内网服务器上执行命令

ssh -NfR 1122:localhost:22 root@100.100.100.100 -p 22

其中,这条命令的意思是在后台执行(-f),不实际连接而是做port (-N),做反向ssh(-R)

将远程服务器的1122端口映射成连接本机与该服务器的反向ssh的端口。

root为外网服务器的登录名,100.100.100.100为外网IP(这里我瞎写的)

登录内网服务器

首先使用SSH登录外网服务器

_外部网络访问内部网络nat_外部访问内部网络

然后执行以下命令就可以进行登录内网服务器了

ssh www@localhost -p1122

www是指你登录内网服务器所用的用户名

ssh连接中断问题

使用保持连接

安装

sudo apt-get install autossh

安装

yum install autossh

在内网服务器上执行命令,代替之前的ssh命令

autossh -M 3322 -NfR 1122:localhost:22 root@100.100.100.100 -p 22

如果还出现断线

修改外网服务器 /etc/ssh/

ClientAliveInterval 120
ClientAliveCountMax 0

修改内网服务器 /etc/ssh/

增加一行:

Host *ServerAliveInterval 15  #每隔15s向服务器发送一次 alive 请求GSSAPIAuthentication yes

跳板机直连

修改外网服务器的属性选项( )

点击Port =>Add按钮添加转发

外部网络访问内部网络nat_外部访问内部网络_

设置转发服务器

Name

可以随便填写

Local

信息是指本地直连内网服务器的地址信息(下一步设置需要用到)

是指外网服务器SSH登录内网服务器的地址信息(对应外网服务器登录命令:ssh www@ -p1122)。

这里可以理解为登录目标服务器的地址信息,也就是在跳板机可以直接登录的目标服务器,有时候为了安全,公司内部也要去使用跳板机登录线上服务器。

这里其实我们使用外网服务器作为跳板机,转发登录内网的服务器。

新建直连内网服务器

通过上方跳板机的设置,就可以直接使用以下IP端口连接内网服务器了

IP地址:127.0.0.1
端口:1122

账号密码就是登录内网服务器的账号密码

注意:连接内网服务器前,需先连接外网服务器(因为在外网的设置了Port ,没连接当然不能转发)

这个时候也可以通过SFTP连接内网服务器了

又可以愉快地在家里开发啦,哈哈哈~~

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了