Machine | IP address | ssh user | Description | exposed port |
---|---|---|---|---|
Remote | 1.1.1.1 | root | remote vps | 1024,1025 |
PC | 192.168.1.100 | * | local pc | * |
Internal | 172.1.0.2 | root | internal ip that has nat out interface | * |
1.开启remote=>internal的反向代理
在internal这台机器上执行以下命令
ssh -p 22 -qngfNTR 1024:0.0.0.0:22 root@1.1.1.1
在remote这台机器上执行以下命令
root@remote:~# netstat -apn|grep 1024
tcp 0 0 127.0.0.1:1024 0.0.0.0:* LISTEN 13998/sshd: root
返回值相同则表示反向代理建立成功
2.开启PC=>remote的正向代理
由于remote这台服务器监听的是127.0.0.1,不能被PC所使用,所以需要开启额外正向代理转发端口
在remote这台服务器执行以下命令
ssh -fCNL *:1025:localhost:1024 -o ServerAliveInterval=60 root@localhost
在remote这台机器上执行以下命令
root@iZ8vbb3mz6nov43lb1qg1uZ:~# netstat -apn|grep 1025
tcp 0 0 0.0.0.0:1025 0.0.0.0:* LISTEN 27973/ssh
tcp6 0 0 :::1025 :::* LISTEN 27973/ssh
返回值相同则表示正向代理建立成功
现在有两种方式访问内网服务器
-
在remote服务器上
ssh -p 1024 root@localhost
-
在PC上
ssh -p 1025 root@1.1.1.1