1. 公网服务器配置

首先,在 GitHub 上下载适合自己服务器架构的 frp 版本。由于我们的服务器是 x86 架构,因此需要下载 amd64 版本。

wget https://github.com/fatedier/frp/releases/download/v0.22.0/frp_0.22.0_linux_amd64.tar.gz

解压下载的压缩包:

tar -zxvf frp_0.22.0_linux_amd64.tar.gz

进入解压后的文件夹后,编辑 frps.ini 配置文件:

vim frps.ini

将配置文件修改为以下内容:

[common]
bind_addr = 0.0.0.0
bind_port = 7500
kcp_bind_port = 7500
dashboard_port = 7501
token = token@12345
dashboard_user = admin
dashboard_pwd = admin

修改完成后保存并退出编辑器。接着,启动 frp 服务端:

./frps -c frps.ini

若一切配置正确,终端会显示如下输出,表示启动成功:

2019/01/12 15:22:39 [I] [service.go:130] frps tcp listen on 0.0.0.0:7000
2019/01/12 15:22:39 [I] [service.go:172] http service listen on 0.0.0.0:10080
2019/01/12 15:22:39 [I] [service.go:193] https service listen on 0.0.0.0:10443
2019/01/12 15:22:39 [I] [service.go:216] Dashboard listen on 0.0.0.0:7500
2019/01/12 15:22:39 [I] [root.go:210] Start frps success

如果你希望 frps 后台常驻运行,可以使用 nohup 命令:

nohup ./frps -c frps.ini > frps.log 2>&1 &

若需要停止 frps 服务,可以使用以下命令:

pkill -f frps

查看进程是否在运行:

ps -aux | grep frps

2. 客户端(待穿透的设备)配置

在客户端设备上,同样下载并解压 frp,然后编辑 frpc.ini 配置文件:

vim frpc.ini

配置文件内容如下:

[common]
server_addr = ******
server_port = 7500
token = token@12345

[ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 6000

保存并退出后,启动客户端 frp:

./frpc -c frpc.ini

若需要后台常驻运行,也可以使用 nohup 命令:

nohup ./frpc -c frpc.ini > frpc.log 2>&1 &

如果需要停止客户端 frp,可以使用:

pkill -f frpc

3. 检查端口占用情况

若启动过程中遇到端口冲突,可以使用以下命令检查端口是否被占用:

netstat -tuln | grep 7500

若有进程占用该端口,可以使用以下命令查看占用该端口的进程 ID(PID):

lsof -i:7500

如果需要杀死该进程,可以使用以下命令:

kill -9 12345  # 将 12345 替换为实际的 PID

4. 🔗 连接测试

完成配置后,你可以使用 SSH 连接到服务器进行测试。使用以下命令进行 SSH 连接:

ssh -p 6000 **@****  

为了简化 SSH 连接,你也可以在 ~/.ssh/config 文件中添加以下配置:

Host ****
HostName ****
Port 6000
User ***

如果你使用宝塔面板管理服务器,可以通过以下地址访问:

http://*******:8888/tencentcloud

你也可以通过以下命令重启宝塔服务:

sudo /etc/init.d/bt default

通过以上步骤,你可以顺利完成内网穿透的配置,并能够通过公网服务器访问内网设备或服务。