我爱帮助网--QQ交流群号

Nas交流与矿渣群(unraid 群晖 猫盘 蜗牛等):372167400         物联网/智能家居群:518812757             帮助教程:手册大全

软件使用与建站群:1057308983      虚拟化交流群:13448651

frp实现内网穿透的详细步骤

2020-03-18 08:00:00
zstmtony
原创
4609
frp内网穿透,可以使用域名,也可使用IP, 一般来讲,域名比较好记。所以有域名的话尽量使用域名,实在没有域名的话才使用IP。
由于web服务一般均会使用80端口,如果80端口是否被nginx或其它web 服务占用的话,则要改成其他端口,如8080,也可使用nginx的反向代理实现frp服务端与nginx共用80端口


一、内网穿透配置

以下文章中 frps就是服务器端(server),frpc就是客户端(client)。

1.有自己域名的FRP配置

# frps.ini服务端配置
[common]
bind_addr = 0.0.0.0
bind_port = 7000
privilege_token = abcdefghijk
vhost_http_port = 80
vhost_https_port = 443


vhost_http_port = 80 和 vhost_https_port = 443 

 将服务器的80端口做http,443端口做https

 原理就像nginx一样,可以多个网站共同使用这两个端口。

 

#frpc.ini客户端配置

[common]
server_addr = 服务端IP
server_port = 7000
privilege_token = abcdefghijk

[httpname]
type = http
local_port = 80
local_ip = 127.0.0.1
custom_domains = www.52help1.com

[httpsname]
type = https
local_port = 443
local_ip = 127.0.0.1
custom_domains = www..52help2.com

这里的 www.52help1.com  www.52help2.com两个域名要真实存在,且要在域名解析里将指定域名解析到frps服务端的IP上。

custom_domains = 这里填写你已经解析到frps服务端IP上的域名,自己每个穿透对应服务,都可以绑定一个专属域名用于访问,包括使用tcp和udp协议。

然后就可以通过这个已经自定义域域名访问到自己的对应HTTP服务。


2.只有IP,没有自己域名的配置

如果自己没有域名,但又想使用FRP实现内网穿透到我的HTTP服务

frps.ini服务端配置

# frps.ini

[common]
bind_addr = 0.0.0.0
bind_port = 7000
privilege_token = abcdefghijk

# frpc.ini客户端配置
[common]
server_addr = 服务端IP
server_port = 7000
privilege_token = abcdefghijk

[httpname]
type = tcp
local_port = 80
local_ip = 127.0.0.1
remote_port = 8080

然后就可以通过 服务端IP地址:8080 来访问访问到对应穿透的服务。

二、使用nginx的反向代理实现frp服务端与nginx共用80端口

利用nginx的反向代理来实现 网站与frp共用80端口。

假如frp要用使用的域名是 myfrp.com
1:修改服务器中nginx.conf配置文件
在nginx.conf中http{ }里添加以下参数,

 server {
 
  listen 80;
 
  server_name myfrp.com www.myfrp.com;
 
  location / {
 
   proxy_pass http://127.0.0.1:8080;
 
   proxy_redirect http://$host/ http://$http_host/;
 
   proxy_set_header X-Real-IP $remote_addr;
 
   proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 
   proxy_set_header Host $host;
 
  }
 
}

其中:server_name myfrp.com www.myfrp.com; 这里填写域名。
也支持泛解析,例如:server_name *.myfrp.com  需要域名同时进行泛解析才行。

设置完保存,重启nginx


2:对应修改frp服务端配置文件

上面配置中设置反向代理到了8080端口,那么frp服务端的配置文件也要对应设置
将 frps.ini配置文件中 也设置为 8080端口
   vhost_http_port = 8080

3:修改frp客户端配置文件
    frpc.ini 对应穿透服务配置里配置好对应域名,custom_domains = myfrp.com

4. 服务器中重启frps,本地电脑中启动frpc

5. 在浏览器中通过80端口直接访问myfrp.com 就可以了

注意:myfrp.com 是解析到我的公网IP的服务器的IP地址。而frp穿透的网站是 搭建在局域网内如我家里的本地的电脑上
          要保证本地电脑本身的web服务是启动正常的,即在本地浏览器打开 http://127.0.0.1  或 http://localhost 能找开网站 
remote_port = 8080为将服务器的8080端口绑定到你的穿透服务,这个端口值的范围为 1-65535

不同穿透服务要使用不同的端口,不能有冲突,或被别的占用。


如果你的公网云服务器是腾讯 或阿里,需要在云服务器后台 入站规则中开启 7000 及你要开放的 remote_port 端口(如6000  8080)

放行这些需要的端口

0
发表评论
评论通过审核后显示。
文章分类
联系我们
联系人: 王先生