如下图所示,在局域网1中,PC机和web服务器同属一个局域网,PC机可以直接通过内网IP(192.168.1.5)访问web服务器页面。但是,如果想通过内网ip访问局域网2的web服务器(192.168.15.31)就比较困难了。那么局域网1中的PC机如何才能通过浏览器访问局域网2的web服务器页面呢?
从web服务器来说,如果希望外部用户可以访问,可以将服务器端口映射到有公网IP(或域名)的服务器,如将192.168.15.31的80端口映射到114.117.2.32的8000端口,这样用户就可以通过访问114.117.2.32:8000访问到他。
但是如果局域网2的web服务器没有将端口映射到外网ip,我又该如何在局域网1通过浏览器访问他呢?这时候就可以通过对本地浏览器socks5的代理,做到访问局域网2的web服务器了。
具体操作:
1)在本地终端通过ssh与局域网2的公网服务器创建连接:
ssh -qTfnN -D 0.0.0.0:17070 user@114.117.2.32 -p 22
password:
# -q 静默模式
# -T 禁用伪终端分配
# -f 后台运行
# -n 阻止从标准输入读取。后台运行的话,必须使用。
# -N 不执行远程命令
# -D [bind_address : port] 本地动态应用级端口转发。没有指定address将监听在127.0.0.1上。
2)设置浏览器socks5代理
这里刚刚是在本机做的连接,所以ip可以写172.0.0.1或本机ip192.168.1.20,如果选择在其他服务器或PC执行ssh命令,则需要输入执行命令的服务器或PC的IP。另外端口设定也需要注意与命令中一致。
保存并重启浏览器后,既可以在局域网1内PC机浏览器输入局域网2内web服务器内网ip(192.168.15.31)访问该web服务器页面。