1.下载frp源码包
- #根据对应的操作系统及架构,从 Release 页面下载最新版本的程序
- https://github.com/fatedier/frp/releases
2.frp参数大全
- 服务端frps.ini参数大全:
- [common] #必须要的,标识头。
- bind_addr = 0.0.0.0 #必须要的,服务器IP,0.0.0.0为服务器全局所有IP可用,假如你的服务器有多个IP则可以这样做,或者填写为指定其中的一个服务器IP,支持IPV6.
- bind_port = 7000 #必须要的FRP通讯端口,用于和客户端内网穿透传输数据的端口,可自定义。
- kcp_bind_port = 7000 #用于KCP协议UDP通讯端口,也可以和“bind_port”共用同一端口,如果没有设置,则kcp在frps中被禁用,可自定义。
- bind_udp_port = 7001 #UDP通讯端口,以帮助使UDP打洞穿透NAT,可自定义。
- token = aaa #连接认证密钥,客户端连接到本服务端的登录验证密钥,可自定义。
- vhost_http_port = 80 #如果你想支持http,必须指定http端口监听,指定端口为http网页协议,可自定义。
- vhost_https_port = 443 #如果你想支持https,必须指定https端口监听,指定端口为https网页协议,可自定义。
- privilege_allow_ports = 2000-3000,3001,3003,4000-50000 #限制只能使用服务端的指定端口,只允许客户端绑定你列出的端口,如果你什么都不设置的话,不会有任何限制。可自定义。
- max_pool_count = 5 #每个内网穿透服务限制最大连接池上限,避免大量资源占用。可自定义。
- dashboard_addr = 0.0.0.0 #绑定服务端IP,0.0.0.0为服务器全局所有IP可用,假如你的服务器有多个IP则可以这样做,或者填写为指定其中的一个服务器IP,支持IPV6。
- dashboard_port = 7500 #WEB端口,访问WEB服务端IP:端口,可自定义。
- dashboard_user = admin #用户名,自定义WEB管理用户名,如果没有设置,默认值是admin。
- dashboard_pwd = admin #登录密码,自定义WEB管理密码,如果没有设置,默认值是admin。
- log_file = /etc/frp/log/frps.log #日志存放路径
- log_level = info #日志记录类别,可选:trace, debug, info, warn, error。
- log_max_days = 7 #最多保存多少天日志
- 客户端frpc.ini参数大全:
- [name] #必须要的,名字必须不一样,建立每个穿透服务,都需要命名一个此服务的名称,不能和其他已建立的相同。
- type = tcp #穿透协议类型,可选:tcp,udp,http,https,stcp,xtcp,你要穿透什么应用要搞清楚,此应用是用什么协议的。
- local_ip = 127.0.0.1 #本地监听IP,可以是本地的局域网IP,也可以是本机的127.0.0.1 IP。
- local_port = 22 #本地监听端口,用于监听本地设备需要穿透的端口,比如我要穿透到本机的SSH端口,而SSH端口为22,则这样理解。
- remote_port = 6001 #远程监听端口,用于frps服务端的,分配建立穿透到内网对应应用的公网端口
- token = aaa #连接认证密钥,客户端连接到本服务端的登录验证密钥。
- use_encryption = false #穿透通讯加密,可选:false,true。
- use_compression = false #穿透通讯压缩,可选:false,true。
- http_user = admin #自定义用户名,为HTTP协议,添加HTTP用户名
- http_pwd = admin #自定义密码,为HTTP协议,添加HTTP密码安全认证
3.服务端配置
- #上传frp源码包
- [root@web01 ~]# ll /opt/frp_0.25.3_linux_amd64.tar.gz
- -rw-r--r-- 1 root root 8147809 12月 2 09:32 /opt/frp_0.25.3_linux_amd64.tar.gz
- #解压
- [root@web01 ~]# cd /opt/
- [root@web01 /opt]# tar xf frp_0.25.3_linux_amd64.tar.gz
- [root@web01 /opt]# cd frp_0.25.3_linux_amd64/
- [root@web01 /opt/frp_0.25.3_linux_amd64]# ll
- 总用量 21064
- -rwxr-xr-x 1 root root 10400928 8月 14 10:15 frpc
- -rw-r--r-- 1 root root 6450 8月 14 10:15 frpc_full.ini
- -rw-r--r-- 1 root root 355 8月 14 10:18 frpc.ini
- -rwxr-xr-x 1 root root 11129280 8月 14 10:15 frps
- -rw-r--r-- 1 root root 2199 8月 14 10:15 frps_full.ini
- -rw-r--r-- 1 root root 218 8月 14 10:15 frps.ini
- -rw-r--r-- 1 root root 11358 8月 14 10:15 LICENSE
- drwxrwxr-x 2 root root 88 8月 14 10:15 systemd
- #删除不必要的客户端文件
- [root@web01 /opt/frp_0.25.3_linux_amd64]# rm -rf frpc frpc.ini
- #服务端frps.ini配置
- [root@web01 /opt/frp_0.25.3_linux_amd64]# cat frps.ini
- [common]
- bind_addr = 0.0.0.0
- bind_port = 7000
- bind_udp_port = 7001
- kcp_bind_port = 7000
- dashboard_addr = 0.0.0.0
- dashboard_port = 7500
- dashboard_user = admin
- dashboard_pwd = admin123
- token = 123456
- tcp_mux = true
- #启动frps服务端(可以后台启动,也可以使用screen)
- [root@web01 /opt/frp_0.25.3_linux_amd64]# ./frps -c frps.ini
- #后台启动
- [root@web01 /opt/frp_0.25.3_linux_amd64]# nohup ./frps -c frps.ini &
4.客户端配置
- #上传,解压,删除默认两个frps服务端文件
- [root@test /opt/frp_0.25.3_linux_amd64]# rm -rf frps frps.ini
- [root@test /opt/frp_0.25.3_linux_amd64]# ll
- 总用量 10192
- -rwxr-xr-x 1 root root 10400928 8月 14 10:15 frpc
- -rw-r--r-- 1 root root 6450 8月 14 10:15 frpc_full.ini
- -rw-r--r-- 1 root root 345 12月 2 11:05 frpc.ini
- -rw-r--r-- 1 root root 2199 8月 14 10:15 frps_full.ini
- -rw-r--r-- 1 root root 11358 8月 14 10:15 LICENSE
- drwxrwxr-x 2 root root 84 8月 14 10:15 systemd
- #客户端frpc.ini配置
- [root@test /opt/frp_0.25.3_linux_amd64]# cat frpc.ini
- [common]
- server_addr = 10.10.10.10 #服务端公网IP
- server_port = 7000 #服务端端口
- token = 123456
- tls_enable = true
- tcp_mux = true #多tcp进程连接,提高效率,性能降低
- protocol = tcp #传输协议
- [web]
- type = tcp
- local_ip = localhost
- local_port = 80
- remote_port = 8080
- use_encryption = true
- use_compression = true
- #启动frpc客户端(可以后台启动,也可以使用screen)
- [root@test /opt/frp_0.25.3_linux_amd64]# ./frpc -c frpc.ini
- #后台启动
- [root@test /opt/frp_0.25.3_linux_amd64]# nohup ./frpc -c frpc.ini &
浏览器访问
- http://10.10.10.10:8080 访问到的是内网电脑的80端口
- 7000 >> 服务端端口
- 7001 >> udp端口
- 7500 >> frp可视化页面管理
#服务端查看是否成功
[root@test ~]# netstat -lntp |grep frps
tcp6 0 0 :::7500 :::* LISTEN 31628/./frps
tcp6 0 0 :::7000 :::* LISTEN 31628/./frps
tcp6 0 0 :::4444 :::* LISTEN 31628/./frps
tcp6 0 0 :::3333 :::* LISTEN 31628/./frps
浏览器非安全端口ERR_UNSAFE_PORT
- 1, // tcpmux
- 7, // echo
- 9, // discard
- 11, // systat
- 13, // daytime
- 15, // netstat
- 17, // qotd
- 19, // chargen
- 20, // ftp data
- 21, // ftp access
- 22, // ssh
- 23, // telnet
- 25, // smtp
- 37, // time
- 42, // name
- 43, // nicname
- 53, // domain
- 77, // priv-rjs
- 79, // finger
- 87, // ttylink
- 95, // supdup
- 101, // hostriame
- 102, // iso-tsap
- 103, // gppitnp
- 104, // acr-nema
- 109, // pop2
- 110, // pop3
- 111, // sunrpc
- 113, // auth
- 115, // sftp
- 117, // uucp-path
- 119, // nntp
- 123, // NTP
- 135, // loc-srv /epmap
- 139, // netbios
- 143, // imap2
- 179, // BGP
- 389, // ldap
- 465, // smtp+ssl
- 512, // print / exec
- 513, // login
- 514, // shell
- 515, // printer
- 526, // tempo
- 530, // courier
- 531, // chat
- 532, // netnews
- 540, // uucp
- 556, // remotefs
- 563, // nntp+ssl
- 587, // stmp?
- 601, // ??
- 636, // ldap+ssl
- 993, // ldap+ssl
- 995, // pop3+ssl
- 2049, // nfs
- 3659, // apple-sasl / PasswordServer
- 4045, // lockd
- 6000, // X11
- 6665, // Alternate IRC [Apple addition]
- 6666, // Alternate IRC [Apple addition]
- 6667, // Standard IRC [Apple addition]
- 6668, // Alternate IRC [Apple addition]
- 6669, // Alternate IRC [Apple addition]