frp内网穿透教程
前提准备
- 需要自备一台在公网的服务器,可以选择购买腾讯云、阿里云等
- 内网穿透的服务器可以访问外网
下载frp
前往Github开源项目frp的仓库中下载,点击下载
下载时要选择自己服务器操作系统的类型去对应下载
安装服务端frps
这里我将以linux系统做举例,我使用的是CentOS 7
- 将下载好的压缩包拷贝到公网服务器的目录下,可根据自己的喜好去放置(我放置在/usr/local目录下)。
- 在放置目录下解压压缩包。
- 进入解压后的目录下
- 编辑frps.toml文件
将下面代码复制到文件中,根据自己需求修改相关参数
# 服务端端口,等待客户端连接
bindPort = 7000
# 认证客户端的身份标识,自定义,要唯一
auth.token = "123456"
# 服务端管理后台仪表盘的端口, 可以用浏览器访问查看,服务端安装完成后可访问http://你的服务器IP:7500访问
webServer.addr = "0.0.0.0"
webServer.port = 7500
# 服务端仪表盘的用户密码
webServer.user = "huarong"
webServer.password = "Huarong@123"
# 虚拟主机http代理端口,代理客户端上的http服务,代理后可通过http://你的服务器IP:3000来访问你的内网服务
vhostHTTPPort = 3000
- 对frps文件赋予可执行权限
chmod +x frps
- 创建新的系统服务
vim /etc/systemd/system/frps.service
将下面的配置粘贴到该服务文件中
[Service]
Type=simple
# 这里配置你的frp的安装目录
ExecStart=/usr/local/frp_0.59.0_linux_amd64/frps -c /usr/local/frp_0.59.0_linux_amd64/frps.toml
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
StandardOutput=syslog
StandardError=inherit
[Install]
WantedBy=multi-user.target
- 启动服务
systemctl start frps.service
- 查看服务启动状态
systemctl status frps.service
- 将该服务设置为开机自启动
systemctl enable frps.service
- 前往你的云服务器的控制台或者公网服务器的命令终端,在防火墙中将刚才配置的连接端口与仪表台端口打开
- 前往仪表台查看是否安装成功,若成功进入仪表台标识服务端安装成功
安装客户端frpc
这里我将以linux系统做举例,我使用的是CentOS 7
- 将下载好的压缩包拷贝到内网服务器的目录下,可根据自己的喜好去放置(我放置在/usr/local目录下)。
- 在放置目录下解压压缩包。
- 进入解压后的目录下
- 编辑frpc.toml文件
将下面代码复制到文件中,根据自己需求修改相关参数
# 设置公网服务器的地址
serverAddr = "39.104.204.123"
# 配置服务端frps配置的连接端口
serverPort = 7000
# 配置服务端frps配置的身份标识token
auth.token = "123456"
# 配置TCP端口代理
# TCP端口代理无需在服务端frps的配置中做相关配置
# 只需要在客户端frpc上配置即可
[[proxies]]
# 代理名称,必须唯一
name = "ssh30"
# 代理类型为tcp
type = "tcp"
# 代理的本地端口
localPort = 22
# 代理的本地IP,通常使用回环地址表示代理本机
localIP = "127.0.0.1"
# 服务端的代理端口,代理后可通过公网服务器的IP加这个端口访问被代理的内网端口
remotePort = 2230
# 配置HTTP端口代理
# HTTP端口代理需要在服务端frps的配置文件中配置vhostHTTPPort
# 穿透后需要访问公网服务器IP加vhostHTTPPort端口访问代理的内网http服务
[[proxies]]
# 配置代理名称,不能重复
name = "dootask"
# 配置代理类型为http
type = "http"
# 配置本地IP,通常使用回环地址表示本机
localIP = "127.0.0.1"
# 配置代理的本地端口
localPort = 3000
# 配置公网服务器IP,会由该IP来代理
customDomains = ["39.104.204.123"]
# 注意,一个frpc的配置中,只能配置一个http代理
# 同时可以配置多个TCP代理,配置多个TCP代理时name不能重复
[[proxies]]
name = "kinit-mysql-30"
type = "tcp"
localIP = "127.0.0.1"
localPort = 23306
remotePort = 33062
- 对frpc文件赋予可执行权限
chmod +x frpc
- 创建新的系统服务
vim /etc/systemd/system/frpc.service
将下面的配置粘贴到该服务文件中
[Service]
Type=simple
# 这里配置你的frp的安装目录
ExecStart=/usr/local/frp_0.59.0_linux_amd64/frpc -c /usr/local/frp_0.59.0_linux_amd64/frpc.toml
KillSignal=SIGQUIT
TimeoutStopSec=5
KillMode=process
PrivateTmp=true
StandardOutput=syslog
StandardError=inherit
[Install]
WantedBy=multi-user.target
- 启动服务
systemctl start frpc.service
- 查看服务启动状态
systemctl status frpc.service
出现success的字样则表示启动成功
- 将该服务设置为开机自启动
systemctl enable frpc.service
- 开放端口
前往你的云服务器的控制台或者公网服务器的命令终端,在防火请中将刚才代理的远程端口打开,通过telnet命令来测试是否代理成功
telnet [你的公网服务器IP] [代理的端口]