菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
2545
10

使用 frp 实现内网穿透

原创
05/13 14:22
阅读数 2549

使用 frp 内网穿透

背景:内网服务器为 ESXI 环境,希望从外网通过域名直接访问对应服务器的服务。一开始用花生壳配合路由器做端口转发,但端口数量以及服务类型据局限较大,故寻求新的内网穿透方式。

  • frp:Github
  • 系统:CentOS 7 x64
  • 需求:一台固定公网 IP 的云服务器,域名
  • 内网服务器 IP 段:192.168.1.201-254

下载

cd /root
wget -c https://github.com/fatedier/frp/releases/download/v0.23.1/frp_0.23.1_linux_amd64.tar.gz
tar zxvf frp*.tar.gz 

frps 服务端

安装在云服务器上

cd /root/frp
chmod +x frps
yum install -y supervisor
systemctl disable firewalld && systemctl stop firewalld

# 定义 frps 配置
cat > /root/frp/frps.ini <<EOF
[common]
bind_port = 30000
vhost_http_port = 30100
vhost_https_port = 30143
subdomain_host = dev.demo.cc
dashboard_port = 30200
dashboard_user = admin
dashboard_pwd = admin
EOF

# 定义运行守护配置
cat > /etc/supervisord.d/frps.ini <<EOF
[program:frps]
directory=/root/frp
command=/root/frp/frps -c /root/frp/frps.ini
autostart=true
autorestart=false
stderr_logfile=/var/log/supervisor/frps_stderr.log
stdout_logfile=/var/log/supervisor/frps_stdout.log
EOF

# 开启服务
systemctl enable supervisord && systemctl start supervisord

如对已配置的 frps.ini 进行修改,vim /root/frp/frps.ini 编辑保存之后,执行 supervisorctl reload frps

访问 IP:30200 如能进入 frp 运行面板则成功,否则请从头检查配置

frpc 客户端

客户端程序运行在想要被穿透的内网服务器上,用来与服务端沟通,一个客户端只可以与一个服务端连接

服务器 IP:192.168.1.206
服务:

  • web,端口80
  • ssh,端口22
cd /root/frp
chmod +x frpc
yum install -y supervisor
systemctl disable firewalld && systemctl stop firewalld

cat < /root/frp/frpc.ini <<EOF
[common]
server_addr = 云服务器公网 IP
server_port = 30000

[206_ssh]
type = tcp
local_ip = 127.0.0.1
local_port = 22
remote_port = 30106
use_encryption = true
use_compression = true

[206_web]
type = http
local_port = 80
subdomain = 206-web
use_encryption = true
use_compression = true
EOF

# 定义运行守护配置
cat > /etc/supervisord.d/frpc.ini <<EOF
[program:frpc]
directory=/root/frp
command=/root/frp/frpc -c /root/frp/frpc.ini
autostart=true
autorestart=false
stderr_logfile=/var/log/supervisor/frpc_stderr.log
stdout_logfile=/var/log/supervisor/frpc_stdout.log
EOF

# 开启服务
systemctl enable supervisord && systemctl start supervisord

更多服务转发配置请看 官方说明

如对已配置的 frpc.ini 进行修改,vim /root/frp/frpc.ini 编辑保存之后,执行 supervisorctl reload frpc

访问 206-web.dev.demo.cc:30100 如能成功访问则配置成功
ssh 连接命令:ssh -oPort=30106 root@云服务器公网 IP

发表评论

0/200
2545 点赞
10 评论
收藏
为你推荐 换一批