本文只是作为记录,避免后面遇到此类问题耗费时间。
实际情况:公司有个固定电信宽带是固定IP的,想把固定IP映射到测试环境ip,实现可以公网通过固定ip访问,内网通过局域网ip访问。
测试环境服务是占用的80端口和8080端口。
主要步骤:路由器ip映射----》访问-----》检查问题-------》更改监听端口
第一步:路由器ip映射
第一步就是这么简单。在你的路由器设置好即可
第二步:访问
既然我们已经做好了映射,那么我们直接通过公网ip访问下看看。(特别注意的点:不要让已经在内网的电脑通过打开公网ip去访问,这样是没有效果的,你可以看到你可以访问,但是如果你用外网的电脑去访问该固定ip的话你会发现访问不了)
这里我们不用直接访问的方式,我们直接用telnet进行测试。
[root@teleport ~]# telnet 212.13.141.240 80
Trying 212.13.141.240...
^C
[root@teleport ~]# telnet 212.13.141.240 22
Trying 212.13.141.240...
Connected to 212.13.141.240.
Escape character is \'^]\'.
SSH-2.0-OpenSSH_7.4
^]
telnet> q
Connection closed.
[root@teleport ~]# telnet 212.13.141.240 8080
Trying 218.17.141.240...
^C
你会发现,我们一个很奇怪的现象就是,22端口是可以telnet通的。其他端口是是不通的。
第三步:检查问题
我们检查发现端口80和8080端口是处于监听状态,并且防火墙是对这两个端口开放的。我们查询资料发现,电信运营商是将一些常用的80.8080端口直接屏蔽了。
第四步:更改监听端口
由于我们既要保证内部网络可以访问,也要保证外部网络可以直接访问。我们用nginx监听两个端口。80端口是局域网直接访问,6666端口用于公网访问。这样就可以了
下面贴下nginx配置。
server {
listen 80;
listen 6666;
server_name amz.test.com;
location / {
try_files $uri /index.html;
root /usr/local/amazonHelpFront/source/dist;
}
location ^~ /api/ {
proxy_pass http://127.0.0.1:8081;
proxy_set_header X-Forward-For $remote_addr ;
}
}