利用Nignx反向代理绕过电信80端口封锁

因为电信的家庭宽带,默认是屏蔽80和443这类常规web端口的,我们可以用Nginx的反向代理,轻松绕过屏蔽。

那么怎么实现绕过屏蔽呢?

先画个草图解释一下:

image.png

因为在“家庭网络”这一层,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端口上:

image.png

2.在路由器上,将外部11111端口映射到主机的80端口上:

image.png

二、主机上的测试环境搭建

下载安装windows版的XAMPP,地址:https://www.apachefriends.org/zh_cn/index.html

安装过程不细说了,一路默认安装即可。

打开XAMPP,启动一下Apache

image.png

提示:如果这一步启动失败,那么十有八九是端口冲突,如果电脑里装了VMvare,请打开任务管理器,把vmvare的后台进程都结束掉,其他占端口的程序同理。

然后打开浏览器,输入127.0.0.1,没意外的话应该能访问了:

image.png

这时候我们试着访问一下 公网IP:22222  看看能否打开页面:

image.png

看到这一步,基本已经完成了百分之八十了。

三、域名的配置

我们需要将域名配置一下,解析到云服务器。如图添加一条A解析,指向云服务器的IP:

image.png

这条配置的意思是:访问aaa.xiaoweigod.com,将指向云服务器IP 47.100.yy.yy。

添加完解析后,电脑打开cmd,运行 ipconfig /flushdns,刷新一下DNS缓存,然后再 ping 一下 aaa.xiaoweigod.com,如果成功ping出服务器地址,那么解析就添加好了。

image.png

四、云服务器上的操作

在云服务器上,我们需要添加一条Nginx反向代理规则,如未安装Nginx,可以使用LNMP一键安装包,详见下面博文的“教程之第三篇:搭建LNMP环境”:

确保有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;
}

如图:

image.png

完成后,按Esc,然后输入 :wq 保存。

重启一下nginx:

service nginx restart

浏览器访问一下 aaa.xiaoweigod.com,看看奇迹的诞生吧~

image.png

点赞
  1. 喷火龙说道:
    Google Chrome Windows 10
    这样使用的网络带宽是云服务器的带宽还是自己服务器的带宽?
    1. 博主说道:
      Google Chrome Windows 10
      你访问NAS的时候,是先走云服务器,然后云服务器再访问你的NAS
      1. 喷火龙说道:
        Google Chrome Windows 10
        我有2台服务器,都具有公网ip。 服务器a 网络带宽很小, 80端口可以使用。 服务器b 网络带宽大,但是80端口不能使用。 能否实现用浏览器访问服务器a的80端口,跳转到服务器b的非80端口?并且最好是能使用服务器b的网络带宽。
        1. 博主说道:
          Google Chrome Windows 10
          那你就刚好按照这个教程来设置了,用这个方法的话A服务器会消耗一点很小的流量,主要消耗B服务器的流量。但是如果你的服务器在国内,绑定域名的话需要做备案才可以用80和443端口。
          1. 喷火龙说道:
            Google Chrome Windows 10
            好的,十分感谢。但是我在网上查到的结果是,返回的时候,b返回a走b的带宽,但是a返回到用户是走a的带宽。
  2. 威龙说道:
    Google Chrome Windows 10
    大佬,基于X86主机,安装的UBUNTU22.04+宝塔面板的LNMP,在电信家庭宽带网络下(已开通公网IP),不使用云服务器NGINX反向代理,可以去掉端口号吗?
    1. 博主说道:
      Google Chrome Windows 10
      如果你的宽带有80或者443端口就可以免端口。如果没有80和443,想不借用第三方的情况下免端口是做不到的。

发表回复