这玩意儿贼tm好用,用golang写的,貌似作者还是个中国人?记录一下实现步骤,相当简单粗暴有效
下载
服务器端和内网的客户端都是用的同一个压缩包,里面直接包含了服务/客户端
https://github.com/fatedier/frp/releases
服务器端
这里的服务器端指的是有静态公网IP地址的服务器,比如阿里家的ECS,需要注意在服务器管理平台上设置防火墙允许访问7000-7010段和7500端口(后面设置要用到)
解压后只保留这几个文件即可:
其中frps_full.ini
算是文档性质的配置参考,留着吧,只需要修改frps.ini
就行了,内容如下:
[common]
bind_port = 7000 # 本地绑定的端口
dashboard_port = 7500 # web远程管理界面绑定的端口
token = lpwmm # 令牌,自定义
dashboard_user = lpwmm # web管理界面的用户名
dashboard_pwd = jqbugksuniwouiua # web管理界面的密码
vhost_http_port = 10080 # 这两个貌似是做反向代理用的,可以先不管
vhost_https_port = 10443
编辑好之后开个cmd
运行命令启动就ojbk了
frps.exe -c frps.ini
客户端
或者应该说是内网的服务器端,配置运行frps的客户端
还是上面下载的压缩包,只保留下面的文件:
修改frpc.ini
[common]
server_addr = x.x.x.x # 这里填写上面的云服务器公网IP地址或域名
server_port = 7000 # 上面云服务器设置的端口,默认7000
token = lpwmm # 上面云服务器设置的令牌,需要保持一致
[web] # []内名称自己起,方便识别
type = tcp # tcp/udp
local_ip = 127.0.0.1 # 本地地址,用这个就行
local_port = 88 # 本地的服务端口(需要映射出去的端口号)
remote_port = 7001 # 映射到云服务器上面的端口号,7000-7010内随便用,因为上面在云服务器防火墙上只开放了这些
搞定配置后开cmd
运行命令跑起来:
frpc.exe -c frpc.ini
出现start proxy success
就ojkb了
测试
在公网上访问云服务器的ip地址+端口号就可以打开内网机器上映射出区的服务了,比如上面例子中,访问:
http://x.x.x.x:7001
就可以打开内网机器的88端口服务
[2022.6更新] Linux客户端配置开机自动启动
$ sudo vim /etc/systemd/system/frpc.service
创建服务配置内容:
[Unit]
Description=Frp Client
After=network.target
[Service]
Type=simple
User=root
Restart=on-failure
RestartSec=5s
ExecStart=/usr/bin/frpc -c /etc/frp/frpc.ini
[Install]
WantedBy=multi-user.target
注意将二进制程序文件和配置文件放到对应位置后重新加载配置并开启开机自动启动(同时开启服务)
$ sudo systemctl daemon-reload
$ sudo systemctl enable frpc --now