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]