使用frp进行内网穿透

环境:

  • 具有公网IP的服务器
  • Centos7
  • 需要内网穿透的客户端

文档

https://github.com/fatedier/frp/blob/master/README_zh.md

  • 将 frps、frps.ini 及 frps.service 放到具有公网 IP 的机器上。

  • 将 frpc 、frpc.ini 及 frpc.service 放到处于内网环境的机器上。

文件位置:

公网机器:

  • frps /usr/bin/frps
  • frps.ini /etc/frp/frps.ini
  • frps.service /lib/systemd/system/frps.service

    内网机器

  • frpc /usr/bin/frpc
  • frpc.ini /etc/frp/frpc.ini
  • frpc.service /lib/systemd/system/frpc.service

1. 服务端

下载

1
https://github.com/fatedier/frp/releases

解压

1
tar -zxvf frp_0.28.2_linux_amd64.tar.gz

移动位置

1
mv frps /usr/bin/frps

修改配置

  • frps.ini
    1
    2
    3
    4
    5
    [common]
    bind_addr = 0.0.0.0
    bind_port = 9800
    # 将8080端口作为内网访问端口
    vhost_http_port = 8080

移动位置

1
mkdir -p /etc/frp & mv frps.ini /etc/frp/frps.ini
  • systemd/frps.service
    主要修改ExecStart
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    [Unit]
    Description=Frp Server Service
    After=network.target

    [Service]
    Type=simple
    User=nobody
    Restart=on-failure
    RestartSec=5s
    ExecStart=/usr/bin/frps -c /etc/frp/frps.ini

    [Install]
    WantedBy=multi-user.target

移动位置

1
mv frps.service /lib/systemd/system/frps.service

启动

1
2
3
4
5
6
7
8
# 注册系统服务
systemctl enable frps.service
# 开启
systemctl start frps.service
# 查看状态
systemctl status frps.service
# 关闭
systemctl stop frps.service

2. 客户端

下载

1
https://github.com/fatedier/frp/releases

移动文件

1
mv frpc /usr/bin/frpc

修改配置文件

  • frpc.ini
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    [common]
    server_addr = 139.189.64.253 # 公网服务器地址
    server_port = 9800 # frps.ini 中定义的 bind_port

    # ssh连接
    [ssh]
    type = tcp
    local_ip = 127.0.0.1
    local_port = 22
    remote_port = 6000
    # 内网web服务暴露于
    [web]
    type = http
    local_port = 80
    custom_domains = blog.pibigstar.com

将 blog.pibigstar.com的域名 A 记录解析到 我们公网IP地址: x.x.x.x
通过浏览器访问 http://blog.pibigstar.com:8080 即可访问到处于内网机器上的 web 服务。

ssh连接
ssh -oPort=6000 root@139.189.65.203

移动位置

1
mkdir -p /etc/frp & mv frpc.ini /etc/frp/frpc.ini
  • frpc.service
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    [Unit]
    Description=Frp Client Service
    After=network.target

    [Service]
    Type=simple
    User=nobody
    Restart=on-failure
    RestartSec=5s
    ExecStart=/usr/bin/frpc -c /etc/frp/frpc.ini
    ExecReload=/usr/bin/frpc reload -c /etc/frp/frpc.ini

    [Install]
    WantedBy=multi-user.target

移动位置

1
mv frpc.service /lib/systemd/system/frpc.service

启动

1
2
3
4
5
6
7
8
# 注册系统服务
systemctl enable frpc.service
# 开启
systemctl start frpc.service
# 查看状态
systemctl status frpc.service
# 关闭
systemctl stop frpc.service
-------------本文结束感谢您的阅读-------------