FRP搭建内网穿透
 1.概述:
 frp可以通过有公网IP的的服务器将内网的主机暴露给互联网,从而实现通过外网能直接访问到内网主机;frp有服务端和客户端,服务端需要装在有公网ip的服务器上,客户端装在内网主机上。
2.简单的图解:
3.准备工作:
 1.一个域名(www.test.xyz)
2.一台有公网IP的服务器(阿里云、腾讯云等都行)
3.一台内网主机
4.下载frp,选择适合的版本下载
解压如下:
我这里服务器端和客户端都放在了/usr/local/frp/目录下
4.执行命令
服务器端给执行文件添加权限
cd /usr/local/frp
 sudo chmod 777 frps
客户端给执行文件添加权限
cd /usr/local/frp
 sudo chmod 777 frpc
 1
 2
 3
 4
 5
 6
 7
 5.修改配置文件
 1.公网服务器端:
打开服务器端配置文件
vim ./frps.ini
我的填写内容如下:
[common]
 bind_port = 7000         # 服务端与客户端通信端口
 dashboard_port = 7500    # 后台管理端口
 dashboard_user = admin   # 后台登录用户名
 dashboard_pwd = admin
vhost_http_port = 7002   # http穿透端口
 vhost_https_port = 7003  # https穿透端口
 max_pool_count = 50
token = aaa123          # 身份验证令牌,frpc要与frps一致
 tcp_mux = true
log_file = /usr/local/frp/frps.log  # 日志相关
 log_level = info
 log_max_days = 3
authentication_timeout = 0  # 服务器与客户端时间相差15min会连接失败,0表示不验证
 subdomain_host = test.xyz   # 注册的域名
 privilege_mode = true
1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 注意:访问的端口一定要开放
启动frps:
前台启动
./frps -c ./frps.ini
后台启动
./frps -c ./frps.ini &
 1
 2
 3
 4
 5
 启动成功后,可以访问后台管理界面(这里举例地址:www.test.xyz:7500)
2.客户端(内网主机):
打开客户端配置文件
vim ./frpc.ini
我的填写内容如下:
[common]
 server_addr = 10.10.xxx.xxx  # 公网服务器ip
 server_port = 7000          # 公网服务端通信端口
token = aaa123              # 令牌,与公网服务端保持一致
 tcp_mux = true
log_file = /usr/local/frp/frpc.log  # 日志相关
 log_level = info
 log_max_days = 3
 authentication_timeout = 0          # 服务器与客户端时间相差15min会连接失败,0表示不验证
[ssh]                           # 添加ssh节点
 type = tcp
 local_ip = 192.168.xxx.xxx
 local_port = 22
 remote_port = 7001              # 指明由公网服务器的7001端口代理
[web01]                         # 添加web节点
 type = http
 local_ip = 192.168.xxx.xxx
 local_port = 8080               # 本地8080端口可以通公网服务器7002端口访问,这里我的8080跑着tomcat
 subdomain = web01               # 自定义子域名
1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 启动frpc
前台启动
./frpc -c ./frpc.ini
后台启动
./frpc -c ./frpc.ini &
 1
 2
 3
 4
 5
 frpc启动成功示例如下:
6.最终结果验证:
 1.测试ssh节点:
 使用xshell连接通过公网服务器连接内网主机
测试连接成功:
2.测试web01节点:
 请求地址:http://web01.test.xyz:7002 能访问到内网的tomcat首页
7.设置frp开启自启动
 使用systemd管理frp:
1.服务端:
需要先 cd 到 frp 解压目录.
复制文件
cp frps /usr/local/bin/frps
 mkdir /etc/frp
 cp frps.ini /etc/frp/frps.ini
编写 frp service 文件,以 ubuntu 为例
vim /usr/lib/systemd/system/frps.service # 有时候需要手动创建system文件夹
frps.service内容如下
[Unit]
 Description=frps
 After=network.target
[Service]
 TimeoutStartSec=30
 ExecStart=/usr/local/bin/frps -c /etc/frp/frps.ini
 ExecStop=/bin/kill $MAINPID
[Install]
 WantedBy=multi-user.target
启动 frp 并设置开机启动
systemctl enable frps
 systemctl start frps
 systemctl status frps
部分服务器上,可能需要加 .service 后缀来操作,即:
systemctl enable frps.service
 systemctl start frps.service
 systemctl status frps.service
 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 2.客户端:
需要先 cd frp 解压目录.
复制文件
cp frpc /usr/local/bin/frpc
 mkdir /etc/frp
 cp frpc.ini /etc/frp/frpc.ini
编写 frp service 文件,以 centos7 为例
vim /usr/lib/systemd/system/frpc.service # 有时候需要手动创建system文件夹
frpc.service内容如下
[Unit]
 Description=frpc
 After=network.target
[Service]
 TimeoutStartSec=30
 ExecStart=/usr/local/bin/frpc -c /etc/frp/frpc.ini
 ExecStop=/bin/kill $MAINPID
[Install]
 WantedBy=multi-user.target
启动 frp 并设置开机启动
systemctl enable frpc
 systemctl start frpc
 systemctl status frpc
部分服务器上,可以需要加 .service 后缀来操作,即:
systemctl enable frpc.service
 systemctl start frpc.service
 systemctl status frpc.service
 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 8.避坑:
 尽量避开浏览器 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]
 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 文章知识点与官方知识档案匹配,可进一步学习相关知识
 微信扫一扫打赏
 微信扫一扫打赏 支付宝扫一扫打赏
 支付宝扫一扫打赏






