ssh 端口转发

Local Port Forwarding

原因

一般来讲,云主机的防火墙默认只打开了22端口,如果需要访问3000端口的话,需要修改防火墙。为了保证安全,防火墙需要配置允许访问的IP地址。但是,本地公忘IP通常是网络提供商动态分配的,是不断变化的。这样的话,防火墙配置需要经常修改,就会很麻烦。

实现

将发送到本地端口的请求,转发到目标端口
用于本地访问远程为开放端口

1
2
3
4
5
-L 本地网卡地址:本地端口:目标地址:目标端口


# 在本地主机A1登陆远程云主机B1,并进行本地端口转发
ssh -L localhost:2000:localhost:3000 root@103.59.22.17

Remote Port Forwarding

原因

通常,本地主机是没有独立的公网IP的,它与同一网络中的主机共享一个IP。没有公网IP,云主机是无法访问本地主机上的服务的。

实现

将发送到远程端口的请求,转发到目标端口
用于远程访问本地无公网ip

1
2
3
4
-R 远程网卡地址:远程端口:目标地址:目标端口

# 在本地主机A1登陆远程云主机B1,并进行远程端口转发
ssh -R localhost:2000:localhost:3000 root@103.59.22.17

Dynamic Port Forwarding


https://blog.fundebug.com/2017/04/24/ssh-port-forwarding/

请作者喝一杯咖啡☕️