使用 gofrp 进行内网穿透


内网穿透

流程

  1. 在具有公网 IP 的机器上部署 frps,修改 frps.ini 文件,这里使用了最简化的配置,设置了 frp 服务器用户接收客户端连接的端口:

    [common]
    bind_port = ****
  2. 在需要被访问的内网机器上(SSH 服务通常监听在 22 端口)部署 frpc,修改 frpc.ini 文件,假设 frps 所在服务器的公网 IP 为 x.x.x.x: ``` [common] server_addr = ... server_port = **

[ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = ** ```

  1. 先通过 ./frps -c ./frps.ini 启动服务端(具有公网IP的服务器),再通过 ./frpc -c ./frpc.ini 启动客户端
  • 注意,打开防火墙 ( & )
  1. 连接 ssh -oPort=**** root@***.***.***.***

配置 systemctl

  • 如果需要在后台长期运行,建议结合其他工具使用,例如 systemd 和 supervisor。

流程

  1. 在 server 端,将 systemd 中的 frpc.service 文件,移动到 /usr/lib/systemd/system
  2. 建立软连接 - ln -s frp_0.37.0_linux_amd64 frp
    • 建立软连接 ln frps /usr/bin/frps - 以使其可执行
  3. 复制 services 文件到 /etc/systemd/system - 然后将其启动 systemctl start frpc
  4. ln frpc /usr/bin/frpc

杂记

  1. 默认使用 tcp 连接,但是其实还支持多种类型

参考文档

  1. 通过 SSH 访问内网机器