如何搭建FRP服务器?详细步骤解析!
创作时间:
作者:
@小白创作中心
如何搭建FRP服务器?详细步骤解析!
引用
1
来源
1.
https://www.kdun.com/ask/1308469.html
FRP(Fast Reverse Proxy)是一款高性能的反向代理应用,支持TCP、UDP、HTTP、HTTPS等多种协议,通过在内网或防火墙后的机器上部署FRP,可以轻松实现内网穿透,将内网服务暴露到公网上。本文将详细介绍如何在Linux环境下搭建FRP服务器和客户端,并验证其功能。
准备工作
- 域名:一个用于访问的域名(如www.test.xyz)。
- 服务器:一台拥有公网IP的服务器(如阿里云、腾讯云等)。
- 内网主机:需要被穿透的内网设备。
- 下载FRP:从FRP官方Github下载适合的版本。
安装与配置
1. 服务端配置
创建目录并上传文件:
mkdir -p /usr/local/frp
cd /usr/local/frp
wget https://github.com/fatedier/frp/releases/download/v0.49.0/frp_0.49.0_linux_amd64.tar.gz
tar -zxvf frp_0.49.0_linux_amd64.tar.gz
编辑配置文件:
打开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 # 身份验证令牌
tcp_mux = true
log_file = /usr/local/frp/frps.log # 日志文件路径
log_level = info
log_max_days = 3
authentication_timeout = 0 # 不验证时间差
subdomain_host = test.xyz # 注册域名
privilege_mode = true
启动服务端:
./frps -c ./frps.ini
2. 客户端配置
创建目录并上传文件:
mkdir -p /usr/local/frp
cd /usr/local/frp
wget https://github.com/fatedier/frp/releases/download/v0.49.0/frp_0.49.0_linux_amd64.tar.gz
tar -zxvf frp_0.49.0_linux_amd64.tar.gz
编辑配置文件:
打开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 # 不验证时间差
[ssh] # SSH节点
type = tcp
local_ip = 192.168.xxx.xxx # 本地IP
local_port = 22
remote_port = 7001 # 远程端口
[web01] # Web节点
type = http
local_ip = 192.168.xxx.xxx # 本地IP
local_port = 8080 # 本地端口
subdomain = web01 # 自定义子域名
custom_domains = test.xyz # 主域名
启动客户端:
./frpc -c ./frpc.ini
验证结果
- 测试SSH节点:使用Xshell等工具连接公网服务器,通过7001端口访问内网主机的SSH服务。
- 测试Web节点:在浏览器中访问
http://web01.test.xyz:7002,应能访问内网Tomcat服务的首页。
设置开机自启动
1. 服务端开机自启动
复制文件:
cp frps /usr/local/bin/frps
mkdir /etc/frp
cp frps.ini /etc/frp/frps.ini
编写systemd服务文件:
[Unit]
Description=frps
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/frps -c /etc/frp/frps.ini
Restart=on-failure
[Install]
WantedBy=multi-user.target
启动并设置开机自启:
systemctl enable frps
systemctl start frps
systemctl status frps
2. 客户端开机自启动(以CentOS为例)
复制文件:
cp frpc /usr/local/bin/frpc
mkdir /etc/frp
cp frpc.ini /etc/frp/frpc.ini
编写systemd服务文件:
[Unit]
Description=frpc
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/frpc -c /etc/frp/frpc.ini
Restart=on-failure
[Install]
WantedBy=multi-user.target
启动并设置开机自启:
systemctl enable frpc
systemctl start frpc
systemctl status frpc
常见问题解答(FAQs)
Q1: FRP服务器无法启动怎么办?
A1: 请检查以下几点:
- 配置文件错误:确保
frps.ini和frpc.ini中的配置正确无误,特别是端口和IP地址。 - 端口占用:确认配置文件中的端口未被其他服务占用,可以使用
netstat -tlnp | grep <端口号>查看端口占用情况。 - 日志信息:查看日志文件(如
frps.log)中的错误信息,有助于定位问题,如果日志文件没有生成,请检查文件路径和权限是否正确。 - 依赖问题:确保系统已安装所有必要的依赖包,对于CentOS系统,可以使用以下命令安装依赖:
对于Ubuntu系统,则使用:yum install wget pcre libssl-dev gcc makeapt install wget pcre libssl-dev gcc make - 权限问题:确保运行FRP的用户对配置文件和日志文件具有读写权限,如果没有,可以使用
chmod命令修改权限:chmod 600 /path/to/config - 防火墙设置:检查防火墙设置,确保所需的端口已被开放,对于CentOS系统,可以使用
firewall-cmd命令;对于Ubuntu系统,则使用ufw命令,开放7000端口的命令为:
或firewall-cmd --permanent --add-port=7000/tcp && firewall-cmd --reloadufw allow 7000/tcp - 网络问题:确保服务器能够正常访问互联网,并且内网主机也能够与服务器通信,如果存在网络问题,可以尝试ping服务器的公网IP或域名来测试连通性,还需要确认服务器所在的网络环境允许进行端口映射和内网穿透操作,如果有任何限制或禁止此类操作的规定,则需要联系网络管理员进行调整。
如果以上步骤都无法解决问题,建议查看官方文档或社区论坛寻求更多帮助,同时也可以提供更详细的错误信息以便他人协助诊断问题所在,另外需要注意的是不同的操作系统版本之间可能存在差异因此在实际操作过程中需要根据具体情况灵活调整解决方案,最后如果遇到无法解决的技术难题也可以考虑升级到最新版本的FRP软件或者更换其他类似的内网穿透工具以满足需求。
Q2: FRP客户端无法连接到服务器怎么办?
A2: 请检查以下几点:
- 服务器地址和端口:确保在
frpc.ini中配置的服务器地址和端口正确无误,可以通过ping命令测试服务器地址是否可达。
如果无法ping通,请检查服务器的网络连接是否正常以及是否有防火墙阻止了ICMP请求,此外还可以尝试使用traceroute命令追踪数据包的路径以帮助定位网络问题所在的位置。ping <服务器IP> - 身份验证令牌:确保客户端和服务端的
token值一致且正确无误,不一致的令牌会导致连接失败,可以在配置文件中核对双方的token值是否匹配,如果仍然有问题可以尝试重新生成一个新的令牌并在两端同步更新后再试一次连接操作看是否能成功建立连接关系,另外需要注意不要将令牌泄露给未经授权的人以防止潜在的安全风险发生。
热门推荐
李白《长干行·其一》全文及鉴赏
各大平台禁止售卖分装化妆品!管得太宽还是背后有“猫腻”?
HTML页面跳转的多种实现方法及优化技巧
父母房产过户给子女哪种方式最划算
碳酸钠的国家标准和行业标准有哪些主要内容?
鲁迅小说中的社会批判与人性思考
“我该选择哪种运动?”——细说不同运动带来的健康价值
紧急遇险 该如何正确发出求救信号?
红茶搭配指南:哪些食物和饮品与红茶更相配?
中国安乐死合法化大讨论:伦理、法律与医学的交叉挑战
解读内存条上的参数,了解性能升级的关键
巨齿鲨可能生存至今吗?
独活寄生丸治关节痛
《数码宝贝新世纪天女兽进化路线介绍》 探索数码宝贝新世纪天女兽的进化之路
只咳不喘也可能是哮喘? 8岁男孩总是不长个,病因竟然在这里
肾小球滤过率低是怎么治疗
科幻和科技的共生(上)
唐寅书画四条屏《四大美女图》
聚焦史前和夏文化重要考古发现 国家文物局通报3项考古最新进展
为什么有的程序员需要两个显示器?
教育优质均衡的“南通现象”
AI在疾病诊疗中的应用引发医生对诊断本质的重新思考
非洲货币顶不住了,埃及官宣“投降”,汇率暴跌40%
硬核脑洞物理奇书,治愈内耗
如何通过四川二建中专学历提升自己的就业竞争力
航空知识科普:直升机机场有哪几种?
南京人最爱的8道金陵名菜,你尝试过几种?
番茄的种植方法和过程
10个维持减肥效果的最佳运动
中国哪些省份有梅雨季节?梅雨季节防霉全攻略