frp内网穿透
frp内网穿透
Pei前一段时间买了一个刷了armbian系统的电视盒子,但是一直没办法在外访问搭建好的项目,于是使用frp搭建了内网穿透服务器。
要求:需要有一台有外网ip的服务器
下载frp
我的是linux系统,使用uname -a
命令查看系统架构。
aarch64或arm64:https://github.com/fatedier/frp/releases/download/v0.45.0/frp_0.45.0_linux_arm64.tar.gz
amd64:https://github.com/fatedier/frp/releases/download/v0.45.0/frp_0.45.0_linux_amd64.tar.gz
其他版本下载地址:https://github.com/fatedier/frp/releases
服务器端配置
上传下载的压缩包
解压
1.解压安装包tar -zxf frp_0.45.0_linux_amd64.tar.gz
2. 进入解压后的文件夹cd frp_0.45.0_linux_amd64
配置
将frps.ini修改为以下内容
1 | vi frps.ini |
1 | [common] |
启动
1.后台启动
1 | ./frps -c frps.ini & |
2.防火墙放开7000,vhost_http_port的端口
例如,查看9200端口是否已放行,其他端口同理firewall-cmd --query-port=9200/tcp --zone=public
显示no说明未放行
放行:firewall-cmd --zone=public --add-port=9200/tcp --permanent
显示success即为成功
3.如果是云服务器厂商也有端口限制,则需要登录云服务器厂商控制台,放行端口
测试
ip:7500可访问可视化界面,如能成功访问即可
客户端(本地机器)配置
解压
同服务端一致
配置
客户端是frpc.ini,注意服务端是frps.ini,要区分开
1 | # 客户端配置 |
启动
1 | ./frpc -c frpc.ini & |
测试
访问custom_domains:9200测试是否正常
将frp安装为服务(可选操作)
服务端
创建frps.service文件
vim /etc/systemd/system/frps.service
1 | [Unit] |
启动frps服务
1 | 启动frp |
客户端
创建frpc.service文件
sudo vim /etc/systemd/system/frpc.service
1 | [Unit] |
启动frpc服务
1 | 启动frpc |
其他命令
1 | 停止frps |
安装时遇到的一些问题
使用自定义域名
- 在域名服务商配置A解析规则,记录值填写服务器ip
- 修改客户端配置文件frpc.ini,custom_domains=域名
-bash: ./frpc: cannot execute binary file: Exec format error
安装包下载错误,先查询系统架构,然后下载对应的安装包,具体请查看第一章节
do http proxy request [host:www.xxx.xxx] error: no root found: www.xxx.xxx
客户端配置域名访问和访问的域名不匹配,请访问custom_domains域名或修改custom_domains域名
The page you requested was not found
同do http proxy request [host:www.xxx.xxx] error: no root found: www.xxx.xxx