Linux安装配置Frp内网穿透教程

你需要一台公网固定IP的服务器来安装frp服务器端。

安装frps文件

进入安装目录(本文以/usr/local/为例)

  1. cd /usr/local

官方下载frp最新版

  1. wget https://github.com/fatedier/frp/releases/download/v0.28.2/frp_0.28.2_linux_amd64.tar.gz

解压文件

  1. tar -xzvf frp_0.28.2_linux_amd64.tar.gz

创建frps文件夹

  1. mkdir frps

拷贝下载的服务器端文件到frps文件夹

  1. cd frp_0.28.2_linux_amd64
  2. cp frps frps_full.ini frps.ini ../frps

删除无用文件和文件夹

  1. cd /usr/local
  2. rm -rf frp_0.28.2_linux_amd64 frp_0.28.2_linux_amd64.tar.gz

然后试着运行一下frps,看看是否能正常运行

  1. ./frps –help

正常显示如下:

  1. root@SteelblueVirtuous-VM:/usr/local/frps# ./frps –help
  2. frps is the server of frp (https://github.com/fatedier/frp)
  3. Usage:
  4. frps [flags]
  5. Flags:
  6. –allow_ports string allow ports
  7. –bind_addr string bind address (default “0.0.0.0”)
  8. -p, –bind_port int bind port (default 7000)
  9. –bind_udp_port int bind udp port
  10. -c, –config string config file of frps
  11. –dashboard_addr string dasboard address (default “0.0.0.0”)
  12. –dashboard_port int dashboard port
  13. –dashboard_pwd string dashboard password (default “admin”)
  14. –dashboard_user string dashboard user (default “admin”)
  15. -h, –help help for frps
  16. –kcp_bind_port int kcp bind udp port
  17. –log_file string log file (default “console”)
  18. –log_level string log level (default “info”)
  19. –log_max_days int log max days (default 3)
  20. –max_ports_per_client int max ports per client
  21. –proxy_bind_addr string proxy bind address (default “0.0.0.0”)
  22. –subdomain_host string subdomain host
  23. -t, –token string auth token
  24. -v, –version version of frpc
  25. –vhost_http_port int vhost http port
  26. –vhost_http_timeout int vhost http response header timeout (default 60)
  27. –vhost_https_port int vhost https port

如果提示-bash: ./frps: cannot execute binary file: Exec format error就说明你下错版本了

配置frps

编辑frps.ini文件

  1. cd frps
  2. vi frps.ini

修改参照

参考以下配置说明来书写配置文件frps.ini,你可以先在电脑上打一份草稿
此处只解释说明一些必要和常用的配置,如需研究完整配置说明请看目录下的frps_full.ini,以及参考frp中文说明

  1. # 下面这句开头必须要有,表示配置的开始
  2. [common]
  3. # frp 服务端端口(必须)
  4. bind_port = 7000
  5. # frp 服务端密码(必须)
  6. token = 12345678
  7. # 认证超时时间,由于时间戳会被用于加密认证,防止报文劫持后被他人利用
  8. # 因此服务端与客户端所在机器的时间差不能超过这个时间(秒)
  9. # 默认为900秒,即15分钟,如果设置成0就不会对报文时间戳进行超时验证
  10. authentication_timeout = 900
  11. # 仪表盘端口,只有设置了才能使用仪表盘(即后台)
  12. dashboard_port = 7500
  13. # 仪表盘访问的用户名密码,如果不设置,则默认都是 admin
  14. dashboard_user = admin
  15. dashboard_pwd = admin
  16. # 如果你想要用 frp 穿透访问内网中的网站(例如路由器设置页面)
  17. # 则必须要设置以下两个监听端口,不设置则不会开启这项功能
  18. vhost_http_port = 10080
  19. vhost_https_port = 10443
  20. # 此设置需要配合客户端设置,仅在穿透到内网中的 http 或 https 时有用(可选)
  21. # 假设此项设置为 example.com,客户端配置 http 时将 subdomain 设置为 test,
  22. # 则你将 test.example.com 解析到服务端后,可以使用此域名来访问客户端对应的 http
  23. subdomain_host = example.com

然后把你的准备好的配置文件内容写入frps.ini

  1. [common]
  2. bind_addr = 0.0.0.0
  3. bind_port = 7000
  4. bind_udp_port = 7001
  5. kcp_bind_port = 7000
  6. vhost_http_port = 10080
  7. vhost_https_port = 10443
  8. dashboard_addr = 0.0.0.0
  9. dashboard_port = 7500
  10. dashboard_user = admin
  11. dashboard_pwd = admin //这里设置你的管理面板密码
  12. log_file = ./frps.log
  13. log_level = info
  14. log_max_days = 3
  15. token = 12345678 //这里设置你的frp token
  16. allow_ports = 2000-3000,3001,3003,4000-50000
  17. max_pool_count = 50
  18. max_ports_per_client = 0
  19. subdomain_host = frps.com
  20. tcp_mux = true

GitHub官方README.md说明
GitHub官方frps.ini说明

注意:阿里云腾讯云服务器需在安全组添加7000,6443端口开放,宝塔面板也需要。

启动frps

启动frps命令

  1. ./frps -c ./frps.ini

保持后台运行frps命令

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

配置systemctl来控制frps

创建frps.service

  1. sudo vim /lib/systemd/system/frps.service

frps.service里添加以下内容

  1. [Unit]
  2. Description=frps service
  3. After=network.target syslog.target
  4. Wants=network.target
  5. [Service]
  6. Type=simple
  7. ExecStart=/usr/local/frps/frps -c /usr/local/frps/frps.ini //启动服务的命令(此处写你的frps的实际安装目录)
  8. [Install]
  9. WantedBy=multi-user.target
赞 (0)