frp(最新版本toml)

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(你内网主机的登录密码)
  • 结束★,°:.☆( ̄▽ ̄)/$:.°★

posted on 2024-11-15 16:05  才会相思  阅读(59)  评论(0编辑  收藏  举报