Frp实现内网穿透

tmx8911
9
2025-05-14

一、frp内网穿透:

1.准备环境:

1、公网linux主机、IP:101.201. * . *
2、本地内网EVE-NG主机、IP:

2.配置frp服务端:

(1)下载frp库:

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

如果觉得速度很慢,可以使用mwget安装(未尝试):

mwget https://github.com/fatedier/frp/releases/download/v0.33.0/frp_0.33.0_linux_amd64.tar.gz

(2)解压frp压缩包:

tar -zxvf frp_0.33.0_linux_amd64.tar.gz

(3)进入该解压目录:

cd frp_0.33.0_linux_amd64/

并打开配置文件:

vi frps.ini

将文件内容修改为如下:

[common] 
# frp监听的端口,默认是7000,可以改成其他的 
bind_port = 7001 
# 授权码,请改成更复杂的 
token = 52010 # 这个token之后在客户端会用到 

# frp管理后台端口,请按自己需求更改 
dashboard_port = 7002 
# frp管理后台用户名和密码,请改成自己的 
dashboard_user = Tmx 
dashboard_pwd = Tmx000000 
enable_prometheus = true 

# frp日志配置 
log_file = /var/log/frps.log 
log_level = info 
log_max_days = 3

修改后如下图:

(4)设置和启动frp服务:

sudo mkdir -p /etc/frp 
sudo cp frps.ini /etc/frp 
sudo cp frps /usr/bin 
sudo cp systemd/frps.service /usr/lib/systemd/system/ 
sudo systemctl enable frps 
sudo systemctl start frps

如果上述命令依次执行完没有任何错误出现,则说明启动成功。

(5)防火墙开放端口:

# 添加监听端口 
sudo firewall-cmd --permanent --add-port=7001/tcp 
# 添加管理后台端口 
sudo firewall-cmd --permanent --add-port=7002/tcp 
sudo firewall-cmd --reload

注意:a. 如果是ubuntu或者centos 6,请使用ufw/iptables工具放行端口;

此时使用ufw:

sudo ufw allow 7001/tcp
sudo ufw allow 7002/tcp

b. 70001511两个端口分别对应frps.ini配置中的bind_portdashboard_port

(6)验证服务端是否启动成功:

访问:http://服务器IP:后台管理端口” ,输入用户名和密码可以查看连接状态 如:http://yourip:1511,用户名和密码分别对应frps.ini文件中的dashboard_user和dashboard_pwd 登录之后界面如下:

3.配置frp客户端:

(1)下载frp库:

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

与服务端frp库一致

(2)解压frp压缩包:

tar -zxvf frp_0.33.0_linux_amd64.tar.gz

(3)进入该解压目录:

cd frp_0.33.0_linux_amd64/

并打开配置文件:
(注意哦,不是frps.ini)

vi frpc.ini

将文件内容修改为如下:

# 客户端配置 
[common] 
server_addr = 101.201.119.105 
server_port = 7001
# 与frps.ini的bind_port一致 
token = 52010 
# 与frps.ini的token一致 

# 配置ssh服务 
[ssh] 
type = tcp 
local_ip = 127.0.0.1 
local_port = 22 
remote_port = 2222 
# 这个自定义,之后再ssh连接的时候要用 
# 配置http服务,可用于小程序开发、远程调试等,如果没有可以不写下面的 
[web] 
type = tcp
local_ip = 127.0.0.1 
local_port = 80 
subdomain = tmxll.cn
# web域名 
remote_port = 8080
#自定义的远程服务器端口,例如8080

修改后为下图:

部分参数需要修改

(4)防火墙开放端口(如果客户端没有防火墙可省略):

# 添加监听端口 
sudo firewall-cmd --permanent --add-port=2222/tcp 
# 添加管理后台端口 
sudo firewall-cmd --permanent --add-port=8080/tcp 
sudo firewall-cmd --reload

注意:a. 如果是ubuntu或者centos 6,请使用ufw/iptables工具放行端口;

此时使用ufw:

sudo ufw allow 2222/tcp
sudo ufw allow 8080/tcp

(5)客户端启动:
在frp_0.33.0_darwin_amd64目录下执行:

./frpc -c frpc.ini

你会看到:

说明内网穿透成功

服务端启动命令:

/root/frp_0.33.0_linux_amd64/frps -c /root/frp_0.33.0_linux_amd64/frps.ini

后台自动运行:

/root/frp_0.33.0_linux_amd64/frps -c /root/frp_0.33.0_linux_amd64/frps.ini &

添加定时任务:

crontab -e
* * * * * /root/frp_0.33.0_linux_amd64/frps -c /root/frp_0.33.0_linux_amd64/frps.ini >/dev/null 2>&1

这行命令将在每分钟执行一次你提供的命令,并将标准输出和错误输出重定向到/dev/null,这样就可以忽略掉所有输出

客户端启动命令:

/root/frp_0.33.0_linux_amd64/frpc -c /root/frp_0.33.0_linux_amd64/frpc.ini

后台自动运行:

/root/frp_0.33.0_linux_amd64/frpc -c /root/frp_0.33.0_linux_amd64/frpc.ini &
动物装饰