1.介绍
本文主要介绍了基于frp的内网穿透。 frp是一款开源的内网穿透工具,可以用于将内网的服务器暴露到公网,方便远程访问。
2.frp
frp可以通过有公网IP的的服务器将内网的主机暴露给互联网,从而实现通过外网能直接访问到内网主机;frp有服务端和客户端,服务端需要装在有公网ip的服务器上,客户端装在内网主机上。
2.1 准备工作
1.一台有公网IP的服务器(阿里云、腾讯云等都行)
2.一台内网主机
3.下载frp,选择适合的版本下载
解压如下:
这里服务器端和客户端都放在了/usr/local/frp/目录下
2.2 配置
1.添加权限
# 服务器端给执行文件添加权限
cd /usr/local/frp
sudo chmod 777 frps
# 客户端给执行文件添加权限
cd /usr/local/frp
sudo chmod 777 frpc
2.修改配置文件
1.公网服务器端:
# 打开服务器端配置文件
vim ./frps.ini
# 我的填写内容如下:
[common]
bind_port = 7000 # 服务端与客户端通信端口
dashboard_port = 7500 # 后台管理端口
dashboard_user = admin # 后台登录用户名
dashboard_pwd = admin
vhost_http_port = 7002 # http穿透端口
vhost_https_port = 7003 # https穿透端口
max_pool_count = 50
token = aaa123 # 身份验证令牌,frpc要与frps一致
tcp_mux = true
log_file = /usr/local/frp/frps.log # 日志相关
log_level = info
log_max_days = 3
authentication_timeout = 0 # 服务器与客户端时间相差15min会连接失败,0表示不验证
privilege_mode = true
注意:访问的端口一定要开放
启动frps:
# 前台启动
./frps -c ./frps.ini
# 后台启动
./frps -c ./frps.ini &
2.客户端(内网主机):
# 打开客户端配置文件
vim ./frpc.ini
# 我的填写内容如下:
[common]
server_addr = 10.10.xxx.xxx # 公网服务器ip
server_port = 7000 # 公网服务端通信端口
token = aaa123 # 令牌,与公网服务端保持一致
tcp_mux = true
[ssh] # 添加ssh节点
type = tcp
local_ip = 192.168.xxx.xxx
local_port = 22
remote_port = 7001 # 指明由公网服务器的7001端口代理
启动frpc:
# 前台启动
./frpc -c ./frpc.ini
# 后台启动
./frpc -c ./frpc.ini &
frpc启动成功示例如下:
3.测试
1.测试ssh节点: 使用xshell连接通过公网服务器连接内网主机
测试连接成功:
4.设置开机自启
使用systemd管理frp: 1.服务端:
# 需要先 cd 到 frp 解压目录.
# 复制文件
cp frps /usr/local/bin/frps
mkdir /etc/frp
cp frps.ini /etc/frp/frps.ini
# 编写 frp service 文件,以 ubuntu 为例
vim /usr/lib/systemd/system/frps.service # 有时候需要手动创建system文件夹
# frps.service内容如下
[Unit]
Description=frps
After=network.target
[Service]
TimeoutStartSec=30
ExecStart=/usr/local/bin/frps -c /etc/frp/frps.ini
ExecStop=/bin/kill $MAINPID
[Install]
WantedBy=multi-user.target
# 启动 frp 并设置开机启动
systemctl enable frps
systemctl start frps
systemctl status frps
# 部分服务器上,可能需要加 .service 后缀来操作,即:
systemctl enable frps.service
systemctl start frps.service
systemctl status frps.service
2.客户端:
# 需要先 cd frp 解压目录.
# 复制文件
cp frpc /usr/local/bin/frpc
mkdir /etc/frp
cp frpc.ini /etc/frp/frpc.ini
# 编写 frp service 文件,以 centos7 为例
vim /usr/lib/systemd/system/frpc.service # 有时候需要手动创建system文件夹
# frpc.service内容如下
[Unit]
Description=frpc
After=network.target
[Service]
TimeoutStartSec=30
ExecStart=/usr/local/bin/frpc -c /etc/frp/frpc.ini
ExecStop=/bin/kill $MAINPID
[Install]
WantedBy=multi-user.target
# 启动 frp 并设置开机启动
systemctl enable frpc
systemctl start frpc
systemctl status frpc
# 部分服务器上,可以需要加 .service 后缀来操作,即:
systemctl enable frpc.service
systemctl start frpc.service
systemctl status frpc.service
3.致谢
本文参考了以下文章,如果您是这些文章的作者,觉得有侵权,请联系我删除。
感谢您阅读本文,希望本文能够帮助到您。如果您有任何问题或建议,请随时联系我。