Page cover image

frp(最新版本toml)

这是一个简单的随想笔记!

## 介绍

frp是一个简单高效的内网穿透工具。但是我在安装使用frp来内穿透我自己的家用服务器的时候,出现了大量的问题,比如格式不对,连接拒绝等等错误,导致我连续弄了好几天才搞明白。所以我出一集我自己理解的最新版本的(相对于.ini的文件).toml的内穿透教程。

前期准备

  • 一台在可以联网的内网主机(由于安全问题,你可以访问网络,但是外界是无法访问你的局域网的主机的,而且大量的主机ip都是动态分配的)。

  • 一台拥有公网IP的云服务。(用于暴露你的主机到公网中)

  • 远程连接软件:用来进行ssh软件。(当然只是用来进行网页穿透就不需要,直接使用浏览器访问就好。)

  • 我的配置

    • 公网ip:使用阿里云的轻量云服务器。系统为Ubuntu最新长期支持版本。

    • 内穿透服务器:使用系统为Ubuntu最新长期支持版本的linux。

    • 远程连接软件:我使用的是Termius(一款非常好用的免费的ssh软件,可以命令窗口,也支持拖拉式传输文件)。

下载安装

  • 我是用的是最新版本的.toml的frp_0.61.0,进入这个网页以后选择自己对应的电脑的版本的下载,如果,服务器是linux,内网主机是windows,则下载两个版本的就好。

  • linux解压压缩包

 tar -zxvf frp_X.XX.X_linux_amd64.tar.gz

注意:将里面的版本替换成你下载的版本号。

  • 解压以后出现的文件有:

    • frps:这是一个frp服务器执行文件。

    • frps.toml:这是frp服务器的配置文件,用来绑定你内网主机和云服务的访问端口和设置用户口令的文件。

    • frpc:这是一个客户端执行文件。

    • frpc.toml:这是客户端配置文件,用来设置你的服务,ssh,log,http,https等等的服务。

    • 一般还有一个github的认证的文件,与frp无关,无需关心。

  • 服务器将frps和frps.toml复制到/etc/frp/下面,客户端复制到对应的/etc/frp/下面(如果没有就自己创建这个文件夹)。

配置文件

  • frps.toml

 bindPort = 7000
  • 用来内网主机和云服务器建立连接的端口。

    • 需要注释云服务器是否开了这个端口,没有打开需要允许这个端口访问。

    • 我使用的是阿里云服务器,先到云服务器页面,找到网络安全->安全组->找到你的内穿透的服务器->入方向->添加

      • 协议类型:TCP

      • 端口范围:7000和6000(后面用户访问外网访问内网的端口,这里是开俩个端口分开俩次添加)

      • 源:所有IPv4(0.0.0.0/0)

      • 描述:自己选择写。

    • 保存就好。

  • frpc.toml

 # 客户端配置
 serverAddr = "云服务器公网ip地址"
 serverPort = 7000 # 与frps.toml的bindPort一致
 ​
 # 配置ssh服务
 [[proxies]]
 name = "ssh"
 type = "tcp"
 localIp = "127.0.0.1"
 localPort = 22
 remotePort = 6000  # 这个自定义,之后再ssh连接的时候要用 
  • 注意:.ini和.toml区别

    • 前者使用server_addr命名,后者使用serverAddr,其他的名字一样。

    • 前者端口外其他的ip号等等不需要双引号,而后者需要双引号。

    • 前者直接使用[name]设置你配置的文件是ssh还是http等等,而后者使用[[proxies]],然后在使用name=“ssh”进行配置。

  • 这里的除了serverAddr其他的可以默认。

    • serverPort需要与frps.toml的bindPort一致。

    • remotePort这个自定义,之后再ssh连接的时候要用,可以按照自己需要更改。

启动文件

  • frps

 ./frps -c ./frps.toml
  • frpc

 ./frps -c ./frps.toml

设置系统服务器自启动

  • frps

    • 对于systemd,您可以创建一个服务文件(例如/etc/systemd/system/frps.service):

     [Unit]
     Description=frp server
     After=network.target
     ​
     [Service]
     ExecStart=/etc/frp/frps -c /etc/frp/frps.toml
     ​
     [Install]
     WantedBy=multi-user.target
    • 注意:修改你的frps文件位置。

    • 重新加载 systemd:让 systemd 读取新的服务文件:

     sudo systemctl daemon-reload
    • 启动服务:启动 frps 服务:

     sudo systemctl start frps
    • 设置服务开机自启:使 frps 服务在系统启动时自动运行:

     sudo systemctl enable frps
    • 检查服务状态:检查 frps 服务的状态:

     sudo systemctl status frps
  • frpc

    • 对于systemd,您可以创建一个服务文件(例如/etc/systemd/system/frpc.service):

     [Unit]
     Description=Frp Client Service
     After=network.target
     ​
     [Service]
     Type=simple
     ExecStart=/etc/frp/frpc -c /etc/frp/frpc.toml
     Restart=on-failure
     RestartSec=5s
     ​
     [Install]
     WantedBy=multi-user.target
     ​
    • 注意:修改你的frpc文件位置。

    • 重新加载 systemd:让 systemd 读取新的服务文件:

     sudo systemctl daemon-reload
    • 启动服务:启动 frpc 服务:

     sudo systemctl start frpc
    • 设置服务开机自启:使 frpc 服务在系统启动时自动运行:

     sudo systemctl enable frpc
    • 检查服务状态:检查 frpc 服务的状态:

     sudo systemctl status frpc

连接

  • 可以使用windows的命令窗口进行连接:

 ssh -p 6000 mango@"云服务器公网ip地址"

注意:这里的6000就是前面设置的remotePort。用户名使用你内网主机的用户名,IP地址使用阿里云云服务器的公网IP。

  • 也可以使用Termius连接

    • 添加HOST

      • IP:阿里云云服务器的公网IP

      • label:你需要记录的名字

      • 端口:6000

      • username: mango(你内网主机的名字)

      • password:xxxxx(你内网主机的登录密码)

  • 结束★,°:.☆( ̄▽ ̄)/$:.°★

最后更新于