最近在做的项目需要用到frp来做代理连接本地内网机,卡在最后启动客户端的时候,提示报错:login to server failed: dial tcp xxxx:7000: connect: connection refuseddial tcp xxxx:7000: connect: connection refused!!找了很多尝试的办法,现在给大家列一下希望对大家有帮助。
frp基本用法
下载frp
搜索github下载到frp,服务端frps/客户端frpc。。下载的时候要注意自己本地内网机的cpu版本和服务端cpu架构
我的电脑是mac M1PRO版本 下载的是:darwinarm64
服务器是X86_64(centos服务器查看cpu架构的指令是:uname -m)下载的是:linux_amd64
1.修改 frps.ini 文件,设置监听 HTTP 请求端口为 8080:
[common]bind_port = 7000vhost_http_port = 8080
2.修改 frpc.ini 文件,假设 frps 所在的服务器的 IP 为 x.x.x.x,local_port 为本地机器上 Web 服务监听的端口, 绑定自定义域名为 custom_domains。
[common]server_addr = x.x.x.xserver_port = 7000[web]type = httplocal_port = 80custom_domains = www.yourdomain.com[web2]type = httplocal_port = 8080custom_domains = www.yourdomain2.com
3.分别启动 frps 和 frpc。
4.将 www.yourdomain.com 和 www.yourdomain2.com 的域名 A 记录解析到 IP x.x.x.x,如果服务器已经有对应的域名,也可以将 CNAME 记录解析到服务器原先的域名。或者可以通过修改 HTTP 请求的 Host 字段来实现同样的效果。
5.通过浏览器访问 http://www.yourdomain.com:8080 即可访问到处于内网机器上 80 端口的服务,访问 http://www.yourdomain2.com:8080 则访问到内网机器上 8080 端口的服务。
先启动服务端frps,启动指令:
nohup ./frps -c frps.ini >/dev/null 2>&1 &
客户端启动指令:
./frpc -c frpc.ini
2.启动客户端的时候遇到问题:login to server failed: dial tcp xxxx:7000: connect: connection refuseddial tcp xxxx:7000: connect: connection refused
解决问题:
先查看服务端有没有正常启动成功,成功提示如下:
frps uses config file: frps.inifrps tcp listen on 0.0.0.0:7000http service listen on 0.0.0.0:8080frps started successfully
客户端启动时提示:
login to server failed: dial tcp xxxx:7000: connect: connection refuseddial tcp xxxx:7000: connect: connection refused
检查服务器有没有放行7000和8080端口
检查contos服务器防火墙有没有开放7000和8080端口
1.开放7000端口
firewall-cmd --zone=public --add-port=7000/tcp --permanent
2.配置立即生效
firewall-cmd --reload
3.查看防火墙所有开放的端口
firewall-cmd --zone=public --list-ports
再次在本地客户端上启动:./frpc -c frpc.ini
问题解决!!!!
来源地址:https://blog.csdn.net/wuzhangting/article/details/129786466