Openwrt下挂载硬盘FRP穿透内网 作者: Hogwarts 发布于: 2021-01-22 更新于: 2024-01-10 分类: 默认分类 其实并不对穿透内网感兴趣,因为感觉没啥用。有那么多的网盘可以使用,而且VPS上还有自行搭建的可道云。但事情就是这样,在一些事件的推动下,在Openwrt下挂载了硬盘,并且穿透了内网。 推动的事件: (1)、入手了NAT,但没啥用,吃灰中。 (2)、有意将吃灰的NAT转手,因无交易经验,未转让成功。 (3)、经大佬点拨:“何不弄个内网穿透”,正好有多年未用的移动硬盘。 (4)、虽然硬盘速度慢些但能够成功搭建,可以积累经验。 (5)、Samba协议传输慢,并且ftp搭建成功发现其用户权限控制比Samba方便(个人感觉)。 遂着手搭建FTP,尝试FRP和NPS。其中FRP和NPS都能搭建成功并且能够访问软路由的界面,也能访问FTP界面,但输入用户名和密码后,就没有然后了。查资料后说FTP协议和FRP不搭,故无法传输数据。但有大佬用树莓派搭建成功的,不死心,继续尝试。 照葫芦画瓢,终于在R2S的Openwrt系统中搭建成功了。具体操作如下: #注意:frp0.52.0 取消了ini配置文件,改为toml格式。故本文不适合frp0.52.0以上版本。 **frp GitHub**:`https://github.com/fatedier/frp` # 一、在openwrt系统挂载移动硬盘 (教程一大堆,略) # 二、在openwrt系统开启FTP服务 (教程一大堆,略) 需要注意: - 1、监听端口:默认21,需自行修改,本文自定义为:PortY - 2、Pasv 模式最小端口定义为PortA,Pasv 模式最大端口定义为PortC(PortC= PortA+2) 比如:模式最小端口定义为10000,最大端口就为10002 - 3、本地用户的根目录和虚拟用户的主目录不要一致。 # 三、在NAT服务端搭建FRP服务 ## 3.1 下载FRP 登录NAT后在终端运行以下命令 wget https://github.com/fatedier/frp/releases/download/v0.35.0/frp_0.35.0_linux_amd64.tar.gz tar –zxvf frp_0.35.0_linux_amd64.tar.gz cd frp_0.35.0_linux_amd64 rm frps.ini vim frps.ini #frps是服务端,frpc是客户端 输入以下内容,简洁一些吧,个人感觉frp管理后台端口没啥用,看个人喜好吧 [common] # frp监听的端口,默认是7000,可以改成其他的 bind_port = PortX #自行修改 # 授权码,请改成更复杂的 token = password #自行修改 ## 3.2 试运行 ./frps –c frps.ini 看到如下内容说明运行成功了,一般都没问题。 2021/01/22 09:19:23 [I] [service.go:190] frps tcp listen on 0.0.0.0:7000 2021/01/22 09:19:23 [I] [root.go:215] start frps success - 运行成功后可以加nohup后台运行,或screen运行,或加入systemctl控制。(略) # 四、Openwrt客户端搭建FRP服务 为啥在Openwrt客户端搭建FRP服务呢,因为在luci界面启动不成功,报错:`frp服务启动失败,请检查服务端 “TCP多路复用(tcp_mux)”设置,确保与客户端完全一致!`前两天在“高级设置”的“TCP端口复用”的勾去掉,把这个错误解决了,现在又出现这个问题了,懒得研究,直接终端运行算球。 PS:经过这几天的测试研究,出现上述error的问题是Openwrt端的frp版本是V0.34.0,而服务端的frp版本是V0.35.0,两端版本不一致所致。待Openwrt升级frpc到V0.35.0后即可正常运行。 ## 4.1 下载FRP wget https://github.com/fatedier/frp/releases/download/v0.35.0/frp_0.35.0_linux_arm64.tar.gz #注意架构 tar –zxvf frp_0.35.0_linux_arm64.tar.gz cd frp_0.35.0_linux_arm64 rm frpc.ini vim frpc.ini 输入以下内容 server_addr = NAT IP server_port = PortX #与NAT对外映射的一致,默认NAT内网和NAT对外映射相同 token = password #与NAT保持一致 [ftp21] type = tcp local_ip = Openwrt路由器地址 local_port = FTP监听端口PortY remote_port = 与FTP监听端口PortY保持一致 #此为NAT端口,避免混乱,以下同理 [ftp1] type = tcp local_ip = Openwrt路由器地址 local_port = PortA #与NAT对外映射的一致,默认NAT内网和NAT对外映射相同 remote_port = PortA [ftp2] type = tcp local_ip = Openwrt路由器地址 local_port = PortB #与NAT对外映射的一致,默认NAT内网和NAT对外映射相同,PortB= PortA+1。 remote_port = PortB [ftp3] type = tcp local_ip = Openwrt路由器地址 local_port = PortC #与NAT对外映射的一致,默认NAT内网和NAT对外映射相同, PortC= PortA+2 remote_port = PortC - PortA、PortB、PortC、PortX、PortY都需要在NAT端口做对外映射,默认NAT内网和NAT对外映射相同。 这涉及到FTP的主动和被动模式原理,我不大懂,自行学习吧。 - (PortA、PortB、PortC被动模式这个真坑) ## 4.2 试运行FRP客户端 ./frpc –c frpc.ini 运行成功后可以加nohup后台运行 # 五、运行FTP客户端 在外网FTP客户端地址输入NAT IP,端口输入FTP监听端口PortY,输入自行设置的用户名密码,不出意外的话,就能登陆你的移动硬盘了。前提是在外网,内网我是不敢试了,怕翻车。 运行很好,没有翻车。 标签: frp
评论已关闭