在上一篇文章中,我们已经实现了内网主机的多次端口映射,将内网主机的端口映射到了公网,可以通过公网访问该主机了。
https://www.xiaoweigod.com/network/1577.html
因为电信的家庭宽带,默认是屏蔽80和443这类常规web端口的,我们可以用Nginx的反向代理,轻松绕过屏蔽。
那么怎么实现绕过屏蔽呢?
其实原理类似我之前写过的一篇文章:
https://www.xiaoweigod.com/network/1566.html
同样画个草图解释一下:
因为在“家庭网络”这一层,80/443端口是默认被屏蔽的,所以我们通过云服务器上的Nginx,将80端口转发到自定义的xx端口,xx端口在家庭网络中通过端口映射,最终到达主机的80/443端口,以实现web访问。这样就完美的绕过了电信的端口屏蔽。
接下来实际操作下。
准备工具:一台云服务器(最好国内),一个域名(最好备案,如果是国外服务器那么无需备案)。
操作环境:域名为 aaa.xiaoweigod.com,云服务器IP为47.100.xx.xx,家庭宽带公网IP为115.204.yy.yy。
一、家庭网络的配置
根据上一篇文章,我们已经知道怎么配置多次端口映射了,这里就简单讲一下。
1.在网关(光猫)上,配置端口映射,将外部22222端口映射到路由器的11111端口上:
2.在路由器上,将外部11111端口映射到主机的80端口上:
二、主机上的测试环境搭建
下载安装windows版的XAMPP,地址:https://www.apachefriends.org/zh_cn/index.html
安装过程不细说了,一路默认安装即可。
打开XAMPP,启动一下Apache
提示:如果这一步启动失败,那么十有八九是端口冲突,如果电脑里装了VMvare,请打开任务管理器,把vmvare的后台进程都结束掉,其他占端口的程序同理。
然后打开浏览器,输入127.0.0.1,没意外的话应该能访问了:
这时候我们试着访问一下 公网IP:22222 看看能否打开页面:
看到这一步,基本已经完成了百分之八十了。
三、域名的配置
我们需要将域名配置一下,解析到云服务器。如图添加一条A解析,指向云服务器的IP:
这条配置的意思是:访问aaa.xiaoweigod.com,将指向云服务器IP 47.100.yy.yy。
添加完解析后,电脑打开cmd,运行 ipconfig /flushdns,刷新一下DNS缓存,然后再 ping 一下 aaa.xiaoweigod.com,如果成功ping出服务器地址,那么解析就添加好了。
四、云服务器上的操作
在云服务器上,我们需要添加一条Nginx反向代理规则,如未安装Nginx,可以使用LNMP一键安装包,详见下面博文的“教程之第三篇:搭建LNMP环境”:
https://www.xiaoweigod.com/webserver/350.html
确保有LNMP环境之后,新建一个Nginx的配置文件:
cd /usr/local/nginx/conf/vhost vim aaa.xiaoweigod.com.conf
按Insert键开始编辑,添加如下内容:
server { listen 80; server_name aaa.xiaoweigod.com; location / { proxy_pass http://115.204.xx.xx:22222; } access_log off; }
如图:
完成后,按Esc,然后输入 :wq 保存。
重启一下nginx:
service nginx restart
浏览器访问一下 aaa.xiaoweigod.com,看看奇迹的诞生吧~
感觉是瞎写,都监听不到80端口怎么转发。。。。
是的 终于被你发现了真相 🙂
高手高手,高高手,解决了我的大问题,谢谢!
有服务器Nginx反向代理,直接放服务器不好吗。如果服务器配置不够不能放服务器,网络也好不到哪里,到时候不卡吗
正是我想说的,感觉这东西有点多余,有服务器了,直接放云服务器就行,nginx转发,流量也是走的服务器,带宽也是看云服务器。还不如在云服务器上放个静态页面,用户访问直接js跳转xxxx.xxx:22222
哈哈哈哈 这篇文章其实是标题党,内容实际讲的是端口转发!
关键是现在的光猫登录进去后没有端口映射 需要超管用户登录 而超管用户我百度了一下 有点不好操作啊
改桥接,用路由器拨号,路由器就能设置端口转发了