必要条件是需要一台公网固定IP的服务器来安装frp服务器端,如果没有的话以下内容就看个乐呵。
安装frps文件
进入安装目录(本文以/usr/local/为例)
cd /usr/local
官方下载frp最新版Releases · fatedier/frp · GitHub
wget https://github.com/fatedier/frp/releases/download/v0.28.2/frp_0.28.2_linux_amd64.tar.gz
解压文件
tar -xzvf frp_0.28.2_linux_amd64.tar.gz
创建frps文件夹
mkdir frps
拷贝下载的服务器端文件到frps文件夹
cd frp_0.28.2_linux_amd64 cp frps frps_full.ini frps.ini ../frps
删除无用文件和文件夹
cd /usr/local rm -rf frp_0.28.2_linux_amd64 frp_0.28.2_linux_amd64.tar.gz
然后试着运行一下frps,看看是否能正常运行
./frps --help
正常显示如下:
root@SteelblueVirtuous-VM:/usr/local/frps# ./frps --help frps is the server of frp (https://github.com/fatedier/frp) Usage: frps [flags] Flags: --allow_ports string allow ports --bind_addr string bind address (default "0.0.0.0") -p, --bind_port int bind port (default 7000) --bind_udp_port int bind udp port -c, --config string config file of frps --dashboard_addr string dasboard address (default "0.0.0.0") --dashboard_port int dashboard port --dashboard_pwd string dashboard password (default "admin") --dashboard_user string dashboard user (default "admin") -h, --help help for frps --kcp_bind_port int kcp bind udp port --log_file string log file (default "console") --log_level string log level (default "info") --log_max_days int log max days (default 3) --max_ports_per_client int max ports per client --proxy_bind_addr string proxy bind address (default "0.0.0.0") --subdomain_host string subdomain host -t, --token string auth token -v, --version version of frpc --vhost_http_port int vhost http port --vhost_http_timeout int vhost http response header timeout (default 60) --vhost_https_port int vhost https port
如果提示-bash: ./frps: cannot execute binary file: Exec format error就说明你下错版本了
配置frps
编辑frps.ini文件
cd frps
vi frps.ini
修改参照
参考以下配置说明来书写配置文件frps.ini,你可以先在电脑上打一份草稿
此处只解释说明一些必要和常用的配置,如需研究完整配置说明请看目录下的frps_full.ini,以及参考frp中文说明
#
下面这句开头必须要有,表示配置的开始 [common] # frp 服务端端口(必须) bind_port = 7000 # frp 服务端密码(必须) token = 12345678 # 认证超时时间,由于时间戳会被用于加密认证,防止报文劫持后被他人利用 # 因此服务端与客户端所在机器的时间差不能超过这个时间(秒) # 默认为900秒,即15分钟,如果设置成0就不会对报文时间戳进行超时验证 authentication_timeout = 900 # 仪表盘端口,只有设置了才能使用仪表盘(即后台) dashboard_port = 7500 # 仪表盘访问的用户名密码,如果不设置,则默认都是 admin dashboard_user = admin dashboard_pwd = admin # 如果你想要用 frp 穿透访问内网中的网站(例如路由器设置页面) # 则必须要设置以下两个监听端口,不设置则不会开启这项功能 vhost_http_port = 10080 vhost_https_port = 10443 #日志路径 #日志记录级别 #日志保留天数 log_file = /usr/local/frps/frps.log log_level = debug log_max_days = 7 # 此设置需要配合客户端设置,仅在穿透到内网中的 http 或 https 时有用(可选) # 假设此项设置为 example.com,客户端配置 http 时将 subdomain 设置为 test, # 则你将 test.example.com 解析到服务端后,可以使用此域名来访问客户端对应的 http subdomain_host = example.com
然后把你的准备好的配置文件内容写入frps.ini
更多配置参考:
GitHub官方README.md说明
GitHub官方frps.ini说明
注意:阿里云腾讯云服务器需在安全组添加7000,6443端口开放,如果使用到了各种j集成环境面板,例如宝塔面板也需要添加端口放行。
启动frps
启动frps命令
cd /usr/local/frps #先进入安装目录,再执行下面的启动Frp命令
./frps -c ./frps.ini
保持后台运行frps命令
nohup ./frps -c ./frps.ini &
配置systemctl来控制frps
创建frps.service
sudo vim /lib/systemd/system/frps.service
在frps.service里添加以下内容
[Unit] Description=frps service After=network.target syslog.target Wants=network.target [Service] Type=simple ExecStart=/usr/local/frps/frps -c /usr/local/frps/frps.ini //启动服务的命令(此处写你的frps的实际安装目录) [Install] WantedBy=multi-user.target
注意”ExecStart=”之后的路径要填写你的frps安装路径(本文以安装到/usr/local/为例)
ESC退出编辑
输入:wq回车即可保存
使用systemctl命令来控制frps
启动frps
sudo systemctl start frps
服务器开机自动启动frps
sudo systemctl enable frps
重启frps
sudo systemctl restart frps
停止frps
sudo systemctl stop frps
查看日志
sudo systemctl status frps
检查服务器端安装情况
浏览器输入服务器IP访问http://xxx.xxx.xxx.xxx:7500来查看frps服务状态。