使用SSH和Nginx做内网HTTP映射
场景
我想把家里监控的80端口映射到我的VPS的80端口上,从而能够通过访问VPS来访问家里的监控。 路由器是极路由,已开启SSH。 监控IP为10.0.0.10,端口80。 VPS地址为hk.gcc.ac.cn。
步骤
极路由上操作,将VPS的2222端口转发到极路由的3333端口。
ssh -R
2222:localhost:
3333 hk
.gcc.ac.cn
在VPS上操作,将VPS的80端口转发到VPS的2222端口,且允许外部访问(-g参数)。
ssh -g -L 80
:localhost:2222 localhost
极路由上操作,设置端口转发。外部端口3333,内部10.0.0.10:80。采用Nginx反向代理。(极路由自带Nginx)这里将下面的内容保存到/etc/nginx/vh.jiankong.conf。
upstream jiankong {
server 10.0.0.10:80;
}
server {
listen 3333;
location / {
proxy_pass http://jiankong;
}
}
注:我尝试过使用iptables进行端口转发,但是内网能访问,转发出去却不能访问。如果知道问题所在,请告诉我。
iptables
-t nat
-I PREROUTING
-p tcp
--dport
3333 -j DNAT
--to 10.0.0.10:
80