前一段时间买了一个刷了armbian系统的电视盒子,但是一直没办法在外访问搭建好的项目,于是使用frp搭建了内网穿透服务器。
要求:需要有一台有外网ip的服务器
我的是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修改为以下内容
vi frps.ini
[common]
# frp监听的端口,默认是7000,可以改成其他的
bind_port = 7000
# 授权码,请改成更复杂的,客户端连接使用
token = 1234
# frp管理后台端口,请按自己需求更改
dashboard_port = 7500
# frp管理后台用户名和密码,请改成自己的
dashboard_user = admin
dashboard_pwd = admin
enable_prometheus = true
# 通过该端口访问客户端
vhost_http_port = 9200
# frp日志配置
log_file = /var/log/frps.log
log_level = info
log_max_days = 3
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,要区分开
# 客户端配置
[common]
server_addr = 服务器公网ip
# 与frps.ini的bind_port一致
server_port = 7000
# 与frps.ini的token一致
token = 1234
# 配置ssh服务
[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000
# 配置http服务,如果没有可以不写下面的
[web]
type = http
# 本地项目服务
local_port = 8801
# 服务器公网ip或自定义域名
custom_domains = www.xxx.xx
# 服务器vhost_http_port端口,随后访问custom_domains:9200即可转发至本机器local_port服务
remote_port = 9200
./frpc -c frpc.ini &
访问custom_domains:9200测试是否正常
vim /etc/systemd/system/frps.service
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frps的命令,需修改为刚才frp放置的地址
ExecStart = 安装路径/frps -c 安装路径/frps.ini
[Install]
WantedBy = multi-user.target
# 启动frp
systemctl start frps
# 配置frps开机自启
systemctl enable frps
sudo vim /etc/systemd/system/frpc.service
[Unit]
# 服务名称,可自定义
Description = frp server
After = network.target syslog.target
Wants = network.target
[Service]
Type = simple
# 启动frpc的命令,需修改为刚才frp放置的地址
ExecStart = 安装路径/frpc -c 安装路径frpc.ini
[Install]
WantedBy = multi-user.target
# 启动frpc
systemctl start frpc
# 配置frpc开机自启
systemctl enable frpc
# 停止frps
systemctl stop frps
# 重启frps
systemctl restart frps
# 查看frps状态
systemctl status frps
# 停止frpc
systemctl stop frpc
# 重启frpc
systemctl restart frpc
# 查看frpc状态
systemctl status frpc
安装包下载错误,先查询系统架构,然后下载对应的安装包,具体请查看第一章节
客户端配置域名访问和访问的域名不匹配,请访问custom_domains域名或修改custom_domains域名
同do http proxy request [host:www.xxx.xxx] error: no root found: www.xxx.xxx