frp内网穿透

发布时间 2023-11-16 17:15:49作者: Amumu1

frp内网穿透

  • 内网client服务器可以访问外网
  • 一台有公网IP的服务器(可以用ECS,我这里用的是一台阿里云ECS)
  • 我这里是以ubuntu部署远程ssh的环境

1.下载frp包:

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

可以去https://github.com/fatedier/frp下载最新的包

2.解压frp_0.52.3_linux_amd64.tar.gz

tar -xvf frp_0.52.3_linux_amd64.tar.gz

目录结构

frp_0.52.3_linux_amd64$ tree
.
├── frpc       #frp client 部署在局域网服务器(PC)
├── frpc.toml  #frp client 配置文件
├── frps       #frp server 部署在云服务器 
├── frps.toml  #frp server 配置文件
└── LICENSE

0 directories, 5 files

3.创建systemd服务

frps.service

xxx@ubuntu2204:~$ cat /lib/systemd/system/frps.service 
[Unit]
Description=frp server daemon
After=network.target

[Service]
Type=simple
ExecStart=frps -c /etc/frp/frps.toml
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no

[Install]
WantedBy=multi-user.target

配置/etc/frp/frps.toml

xxx@ubuntu2204:~$ cat /etc/frp/frps.toml
bindPort = 7000
  • bindPort 为frp server 监听端口,可自定义

frpc.service

xxx@ubuntu2204:~$ cat /lib/systemd/system/frps.service 
[Unit]
Description=frp client daemon
After=network.target

[Service]
Type=simple
ExecStart=frpc -c /etc/frp/frpc.toml
TimeoutSec=0
RemainAfterExit=yes
GuessMainPID=no

[Install]
WantedBy=multi-user.target

配置/etc/frp/frpc.toml

xxx@ubuntu2204:~$ cat /etc/frp/frpc.toml 
serverAddr = "x.x.x.x"  #云服务器公网IP
serverPort = 7000       #对应frps.toml中bindPort = 7000

[[proxies]]
name = "ssh"
type = "tcp"
localIP = "192.168.217.139" #本机IP
localPort = 22
remotePort = 6000 #最后ssh登录时的端口

2.服务器端部署

  1. 拷贝frps.service 至云服务器/lib/systemd/system目录
  2. 拷贝frps.toml 至云服务器/etc/frp/目录 (没有就创建 mdir -p /etc/frp)
  3. 拷贝frps 至云服务器/usr/local/bin/目录
  4. 启动服务frps.service
sudo systemctl daemon-reload
sudo systemctl start frps
sudo systemctl enable frps #开机自启(不需要可以不用执行)

查看frps.service服务状态

sudo systemctl status frps

2.PC端部署

  1. 拷贝frpc.service 至PC /lib/systemd/system目录
  2. 拷贝frpc.toml 至PC /etc/frp/目录 (没有就创建 mdir -p /etc/frp)
  3. 拷贝frpc 至PC /usr/local/bin/目录
  4. 启动服务frpc.service
sudo systemctl daemon-reload
sudo systemctl start frpc
sudo systemctl enable frpc #开机自启(不需要可以不用执行)

查看frpc.service服务状态

sudo systemctl status frpc

出现如下日志,即为成功

其他主机远程连接PC

ssh -p 6000 云服务器用户名@云服务IP

注意:

云服务器防火墙需要打开对应的端口,否则连接不成功