FRP内网穿透配置实践方案

使用穿透net的方式

安装frp服务端

# 下载最新版本(以 0.52.0 为例)
wget <https://github.com/fatedier/frp/releases/download/v0.52.0/frp_0.52.0_linux_amd64.tar.gz>

# 解压
tar -zxvf frp_0.52.0_linux_amd64.tar.gz

给解压的文件夹重命名

cp -r frp_0.22.0_linux_amd64 frp

进入文件夹,可以看到有四个文件。其中frps是服务端(server),frpc是客户端(client)

frps
frps.toml
frpc
frpc.toml

配置文件解释

配置文件格式有要求,使用自带的修改启动会报错。在网上找的配置文件就不会,不清楚为什么

  • 成品配置文件

    # frps.toml
    bindPort = 7000 				# 服务端与客户端通信端口
    
    transport.tls.force = true		# 服务端将只接受 TLS链接
    
    auth.token = "xxxx" 			# 身份验证令牌,frpc要与frps一致
    
    # Server Dashboard,可以查看frp服务状态以及统计信息
    webServer.addr = "0.0.0.0"		# 后台管理地址
    webServer.port = 7500 			# 后台管理端口
    webServer.user = "admin"		# 后台登录用户名
    webServer.password = "abc06869690"	# 后台登录密码
    

启动服务:

./frps -c frps.toml

看到下面就是启动成功

image-20251206212316727

将程序注册为服务:

sudo vim /etc/systemd/system/frps.service

编辑文件,粘贴下面

[Unit]
Description=frp server
After=network.target

[Service]
Type=simple
ExecStart=/workspace/frp/frps -c /workspace/frp/frps.toml
Restart=on-failure

[Install]
WantedBy=multi-user.target

启动并设置开机自启

sudo systemctl start frps
sudo systemctl enable frps
sudo systemctl status frps

客户端启动

去GitHub下载客户端

https://github.com/fatedier/frp/releases

image-20251206212333593

解压,编辑其中的frpc.toml文件

  • 成品配置文件

    serverAddr = "115.90.1.170" # frps的地址(服务端)
    serverPort = 7000 # 交换数据的端口
    auth.method = "token" # 鉴权方式
    auth.token = "xxx" # 鉴权token
    
    [[proxies]]
    name = "itsm"
    type = "tcp" 
    localIP = "127.0.0.1" # 本地的IP
    localPort = 8000 # 本地服务的端口
    remotePort = 8000 # 访问服务器的端口
    

启动,和服务端一样

.\\frpc.exe -c frpc.toml

也可以使用bat文件的方式来启动

@echo off
cd /d D:\\app\\frp\\frp_0.65.0_windows_amd64\\
frpc.exe -c frpc.ini
pause

以下非必要:因为就算配了域名,也会被云服务器提供商拦截未备案

如果服务端使用了子域名的配置

subDomainHost = "yoleo.top"

则需要在服务端加入配置

bindPort = 7000
subDomainHost = "yoleo.top"
vhostHTTPPort = 80               # HTTP 端口
# vhostHTTPSPort = 443

客户端加入配置,注意需要删除remotePort

serverAddr = "115.90.1.170"
serverPort = 7000
auth.method = "token"
auth.token = "xxx"

[[proxies]]
name = "itsm"
type = "http"
localIP = "127.0.0.1"
localPort = 8000
subdomain = "itsm"

这样配置可以访问 itsm.yoleo.top访问本地8000端口的服务。

经过实践发现,这样搞有些问题,访问不通。例如本地需要搞一个什么TLS类型的连接,frp的后台管理也连不上了。

可以使用本地端口映射服务器80端口的方案,然后域名解析到服务器,一样的效果。

posted @ 2025-12-06 01:27  压中  阅读(0)  评论(0)    收藏  举报