利用ssh端口转发
你的本地机器IP是192.168.1.100,你有一个远程服务器,假设IP是 203.0.113.0,上面运行了一个web服务在 80 端口
由于某种原因,你在本地机器(IP是192.168.1.100)不能直接访问这个web服务,但你可以SSH登陆到这台服务器
你想在本地机器(IP是192.168.1.100)的 8080 端口访问这个web服务,可以这么做:
ssh -L 8080:localhost:80 username@203.0.113.0
解释一下:
上述命令是在本地机器(IP是192.168.1.100)上执行的
8080 是你本地机器上监听的端口
localhost:80 是目标地址和端口,这里的 localhost 是相对于SSH服务器来说的,所以 localhost:80 表示SSH服务器上的80端口
username@203.0.113.0 是你用来登录SSH服务器的用户名和服务器地址
命令成功执行后,你的本地机器上的 8080 端口就会被转发到 203.0.113.0 服务器的 80 端口。此时如果你在本地浏览器访问 http://192.168.1.100:8080,实际上就是访问远程服务器的web服务。
补充说明:
这个命令是利用了ssh的端口转发功能,SSH 命令的 -L 选项可以创建一个在本地机器上的端口转发,可以把本地的一个端口的流量转发到远程的一个端口。
格式为:
ssh -L [监听地址:]监听端口:目标地址:目标端口 用户名@ssh服务器地址