美文网首页生物信息杂谈Linux系列
使用SSH端口转发功能远程登陆内网服务器

使用SSH端口转发功能远程登陆内网服务器

作者: 生信杂谈 | 来源:发表于2019-05-12 16:43 被阅读23次

一些公司或者实验室的服务器为了安全起见,只允许允许用户在局域网内登录,离开工作地点地点就没法登陆服务器,特别不方便在家/宿舍加班。为了能够在离开工作地点后依然能登陆服务器,本期介绍下如何使用ssh端口转发实现该功能。

首先,你得有台有公网IP的服务器。

如果是学生的话,租一台配置最简单的腾讯云主机就行10块钱/月(非学生用户一个月100多),或者阿里云也行啊,3个月18块钱, 不过得抢。如果享受不到学生优惠,可以去搬瓦工租一台,一年20刀。下面是我在腾讯云租的一台。


其次,创建SSH端口转发。

基本原理和目的就是,将内网服务器(无公网IP)的端口转发到远程服务器(有公网IP)的某个开放端口,然后SSH连接远程服务器上被映射的端口,就可以实现SSH内网穿透的功能。


(来源:https://blog.csdn.net/zhaoyangkl2000/article/details/77961356

步骤如下:

  1. 启动远程服务器ssh的路由功能。在/etc /sshd_config中修改GatewayPorts no为GatewayPorts yes,默认是开启的。如果不打开这个的话,只能在远程服务器上进行内网穿透。如果不行的话可以将被映射的端口绑定在0.0.0.0的接口上,方法是ssh加上参数-b 0.0.0.0。
  2. 开放远程服务器被映射的端口, 假设我要开放8387端口,如果使用firewall的话,命令如下:
systemctl start firewalld
firewall-cmd --add-port=8387/tcp --permanent
firewall-cmd --add-port=8387/udp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --query-port=8387/tcp

如果使用iptables的话:

iptables -A INPUT -p udp -d 0/0 -s 0/0 --dport 8387  -j ACCEPT
iptables -A INPUT -p tcp -d 0/0 -s 0/0 --dport 8387  -j ACCEPT
netfilter-persistent save
netfilter-persistent reload
  1. 在内网服务器上进行端口转发,并输入远程服务器的密码。
ssh -fR 远程服务器开放的端口:127.0.0.1:内网服务器SSH端口 root@远程服务器IP -p 远程服务器SSH端口  "vmstat 30"
# -f 表示后台运行。
# -R表示远程端口转发
# vmstat 30 是为了防止远程服务器把长时间没有通讯的链接断开。
  1. 然后就可以远程登录内网服务器了。
ssh -p 远程服务器开放的端口 内网用户@远程服务器IP

更多原创精彩视频敬请关注生信杂谈:

相关文章

网友评论

    本文标题:使用SSH端口转发功能远程登陆内网服务器

    本文链接:https://www.haomeiwen.com/subject/yydzoqtx.html