通过Frp内网穿透和Nginx反向代理实现不带端口号访问家里内网服务器网站

您所在的位置:网站首页 nginx隐藏端口号 通过Frp内网穿透和Nginx反向代理实现不带端口号访问家里内网服务器网站

通过Frp内网穿透和Nginx反向代理实现不带端口号访问家里内网服务器网站

2024-07-16 22:32| 来源: 网络整理| 查看: 265

先说下背景,Sham虽然去申请开通了公网IP,但是电信是会把80和443端口给禁用的,那正常访问家里服务器都需要带端口号,这样很不友好,于是想起以前使用Frp内网穿透来实现去除端口号,然后在外部云服务器上布置Frp服务的时候发现80被占用,于是用到了Ngnix反向代理功能,终于完整实现。

这个方法能实现没有公网IP或者有公网IP但是想要去除端口号时来使用,缺点就是你得有个外网云服务器,而且实际速度是按照这个云服务器配置来的。

下面就来详细讲实现过程:

首先下载Frp,软件下载地址:https://github.com/fatedier/frp ,记得选择适合自己的版本,里面有中英文使用说明,更多功能可以自行查看,Sham只记录用到的。

将这个软件包分别上传云服务器和家里的服务器,解压。其中frps开头的文件,是服务器端的文件,即外部云服务器上要使用的,而frpc开头的文件,则是客户端的,即家里内部服务器用的。

外部云服务器部分,首先配置 frps.ini 文件,因为Sham只用到web服务,所以只配置了2条:

[common] #记得下面2个端口在服务器上放行 #云服务器frp端口,用于客户端连接访问用 bind_port = 7000 #web服务http接口,就是你打开网址时访问的,因为80端口被禁用,所以Sham使用了别的 vhost_http_port = 8080

然后运行服务,代码如下:

./frps -c ./frps.ini

家里内部服务器部分,首先配置frpc.ini文件,同上,Sham只配置了web服务:

[common] #外部云服务器地址+设置的端口 server_addr = xxx.xxx.xxx.xxx server_port = 7000 #第一个web网站,端口号为内部对应端口,及对应访问网址,这个网址需要在外部云服务器上绑定 [web] type = http local_port = 8081 custom_domains = yyy.com #第二个web网站,端口号为内部对应端口,及对应访问网址,这个网址需要在外部云服务器上绑定 [web2] type = http local_port = 8081 custom_domains = xxx.com #如还有,同上添加

然后运行服务,代码如下:

./frpc -c ./frpc.ini

这样,Frp服务算是已经完成了,正常你就能通过网址:端口号访问了,比如上面的xxx.com:8080,就会访问web2第二个网站。

然后就是通过云服务的Nginx反向代理功能,去除8080这个端口号,因为默认网址直接访问的是80端口,因为云服务器其他网站需要,占用了80,所以frp服务不能使用,所以简单来讲就是通过访问正常网址,来代理访问到8080端口,再实现frp访问内部网站

在云服务器上找到nginx.conf,如果你用的宝塔面板,可以直接通过软件的配置来修改,或者找到/www/server/nginx/conf/nginx.conf

server { listen 80; server_name xxx.com yyy.com; location / { proxy_pass http://127.0.0.1:8080; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_hide_header X-Powered-By; } }

编辑好之后重载配置即可,这样,就可以直接通过xxx.com访问上面frp设置的网站啦。

注意点:

1. 记得在云服务器和本都内部服务器把相应端口都打开,不然就无法访问了

2. frp需要运行着才行,可以通过宝塔面板的“堡塔应用管理器”或者“Supervisor管理器”让2个服务器上的frp都保持运行,任何1方停止程序,都会导致服务停止

写在最后:

这是无奈之举,需要你有云服务器,而且速度等都会受云服务器限制,如果云服务器空间足够,可以不用考虑,直接放云服务器访问多香

我是一个想做码农的行政文员



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3