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实现内网穿透的详细步骤