说明

基于 fatedier/frp 的内网穿透服务
参考文档 frp中文文档
参考文档 使用frp进行内网穿透

服务端

直接下载 Releases · fatedier/frp
找到对应版本下载即可,我这里服务端选用的是 frp_0.33.0_linux_386

国内机器速度慢可以使用我的个人镜像地址

1
wget https://api.0161.org/resources/frp_0.33.0_linux_386.tar.gz

修改配置文件 frps.ini 文件,建议增加Token验证 关于服务端配置可以参照官方给出的完全版配置文件及注释查看 frps_full.ini 文件

配置示例

1
2
3
4
5
6
7
8
[common]
bind_port = 7000
token = 123456
dashboard_port = 7500
dashboard_user = admin
dashboard_pwd = 123456
vhost_http_port = 10088
vhost_https_port = 10443

1
nohup ./frps -c ./frps.ini &

查看后台进程

1
jobs

删除进程示例

1
2
ps -ef | grep frps | grep -v grep
kill <进程id>

根据上述配置好的端口 7500 使用 IP+端口 访问frp面板 输入面板用户名+密码
该面板无实际性作用,仅用来做探针以及查看当前服务的状态,如未配置dashboard则无法使用dashboard

1.png
1.png

客户端

下载 客户端 可以直接在github下载或者使用我的

1
wget https://api.0161.org/resources/frp_0.33.0_windows_amd64.zip

解压后修改 frpc.ini

1
2
3
4
5
6
7
8
9
10
11
12
13
[common]
server_addr = <你的服务器IP地址>
server_port = 7000
token = 123456
[rdp]
type = tcp
local_ip = 127.0.0.1
local_port = 3389
remote_port = 7001
[web]
type = http
local_port = 80
custom_domains = <你的远程解析域名 例如: xxx.0161.org>

上述使用Windows开启3389后可以访问远程桌面,Linux同理,只需要修改为 SSH 即可

2.png
2.png

值得注意的是 custom_domains 这个参数需要配合 vhost_http_port 这个参数使用,由于跟Nginx冲突所以上述端口我开启的是 10088
可以使用域名解析的方式 架设游戏服务器 或者网络云盘 群晖 你懂得网站等

Nginx反向代理

使用上述配置必须要使用 域名+端口 的形式才能访问,如果要用正式环境则不美观,且我们希望它与Nginx共存,因此,可以通过Nginx反向代理的形式去解析
配置Nginx配置文件

1
2
3
4
5
6
7
8
9
10
11
12
server {
listen 80;
server_name xxx.0161.org;

location / {
proxy_pass http://127.0.0.1:10088;
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_set_header REMOTE-HOST $remote_addr;
}
}

流程图解

3.png
3.png

至此,可以直接访问 xxx.0161.org 无需携带端口号