最新消息:本站因备案问题,原站名(杰旭工作室)即日起正式停止使用,站名更改为聚焦云客。

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

技术文档 admin 311浏览 0评论

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)

放行这些需要的端口

转载请注明:聚焦云客 » frp实现内网穿透的详细步骤

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

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