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