将你的电脑变成web服务器之二:利用Nignx反向代理绕过电信80端口封锁

2019-05-30 小惟 3

在上一篇文章中,我们已经实现了内网主机的多次端口映射,将内网主机的端口映射到了公网,可以通过公网访问该主机了。

因为电信的家庭宽带,默认是屏蔽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