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条:

[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方停止程序,都会导致服务停止

写在最后:

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

赞(0) 赏杯咖啡!
未经允许不得转载:Sham@双目瞿 » 通过Frp内网穿透和Nginx反向代理实现不带端口号访问家里内网服务器

评论 抢沙发

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

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

微信扫一扫打赏