I'm Sham
一个尝试做码农的行政文员

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

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

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

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

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

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

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

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

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

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

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

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

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

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

注意点:

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

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

写在最后:

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

赞(0) 赏杯咖啡!
未经允许不得转载:Sham@双目瞿 » 通过Frp内网穿透和Nginx反向代理实现不带端口号访问家里内网服务器
分享到: 更多 (0)
【采购季】上云仅¥223/3年

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

如果你觉得文章好,请赏1杯速溶咖啡给Sham吧!

微信扫一扫打赏