SSH端口转发

在测试时关闭防火墙,测试通过在开通防火墙,避免误导测试结果

1# 修改sshd配置文件

vim /etc/ssh/sshd_config

配置下面三项,去掉#注释,并设置yes

AllowAgentForwarding yes
AllowTcpForwarding yes
GatewayPorts yes

重启启动sshd,重启后退出xshell重新连接

service sshd restart

 

2# 本地转发

本地转发命令格式: {ssh client}# ssh -g -N -f -o ServerAliveInterval=60-L <local port>:<remote host>:<remote port> username@<ssh server>

本地转发是在ssh-client端建立侦听端口(5555),访问ssh-client的侦听端口(5555)将tcp数据包通过ssh隧道发往ssh-server端,ssh-server端收到tcp数据包后,再与指定的IP端口建立新的tcp连接(192.168.1.111:80)并转发数据。

 

命令示例:ssh -g -L 5555:192.168.1.111:80 root@192.168.1.159

命令解释:-L 本地转发, -g  不加-g 则只能再(192.168.80.126)本机进行访问,也就是通过localhost或127.0.0.1访问,加-g 则可以通过192.168.80.126的IP地址访问,这样其它机器也可以通过访问192.168.80.126来访问。

在192.168.80.126这台机器上(ssh-client)侦听5555端口,设置ssh-server讲tcp数据包转发到192.168.1.111:80端口。

 

3# 远程转发

远程转发命令格式: {ssh client}# ssh -g -N -f -o ServerAliveInterval=60 -R <local port>:<remote host>:<remote port> username@<ssh server>

 

 

远程转发是在ssh-server端建立侦听端口(80),访问80端口的tcp数据包通过ssh隧道 由ssh-server发往ssh-client,

ssh-client端收到数据包后,再与指定的地址(192.168.80.111:80)建立新的连接转发数据包。

命令示例:ssh -R 9999:192.168.80.111:80 root@192.168.1.159

命令解释:-R 远程转发

 


#其它参数解释

注1:如果以上命令不加”-g”选项,那么SSH Client上的监听端口2323会绑定在127.0.0.1上,意味着只有SSH Client自己才能连上。加上”-g”选项之后,SSH Client才允许网络上其他机器连接2323端口。

注2:以上命令会生成一个shell,有时候并不符合我们的需要,因为多数时候我们只想要一个端口转发功能,挂一个shell是个累赘,而且shell一退出,端口转发也停了。这就是为什么我们需要”-N -f”选项的原因:-N 告诉ssh client,这个连接不需要执行任何命令,仅做端口转发-f 告诉ssh client在后台运行

注3:为了避免长时间空闲导致ssh连接被断开,我们可以加上”-o ServerAliveInterval=60″选项,每60秒向ssh server发送心跳信号。还有一个TCPKeepAlive选项的作用是类似的,但是不如ServerAliveInterval 好,因为TCPKeepAlive在TCP层工作,发送空的TCP ACK packet,有可能会被防火墙丢弃;而ServerAliveInterval 在SSH层工作,发送真正的数据包,更可靠些。

注4:如果不是以root身份设置端口转发的话,转发端口只能使用大于1024的端口号。

 

利用xshell进行内网访问

外网linux服务器有固定ip,公司内网没有固定ip,通过路由器上外网。

GatewayPorts yes

类型方向截图不对(应该转入),注意:如果用户已非root登录,则不能用1000以内保护端口

 

参考

http://hetaoo.iteye.com/blog/2299123

http://blog.csdn.net/a351945755/article/details/21785647

http://www.freeoa.net/osuport/sysadmin/the-three-port-forwarding-on-xshell_1888.html

http://www.linuxidc.com/Linux/2016-01/127868.htm

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值