找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 12942|回复: 7

通用的openwrt跑内网frp穿透的实现方法,对固件理论上无要求

[复制链接]
本帖最后由 leeanky 于 2018-8-28 09:03 编辑

找了好久的luci界面的frpc客户端,都用不了,也不会写脚本和代码,实在没办法了,只能用土办法来实现。这方法理论上可以适合任何跑openwrt的路由器,对固件版本应该也没什么要求。

思路很简单,我用hfs搭建一个http服务器,把frpc用到的主程序和配置文件都放在http服务器上面,远端的内网路由器启动之后通过wget下载这两个文件到tmp临时分区,然后运行之,这样做的好处就是配置文件放在服务端,方便你按需要修改配置,在客户端没有luci界面的情况下也容易操作维护,。


1: 首先你要有个具有公网ip的服务器,我自己用的是Windows的,跑frps服务端,配置自己google或者百度,这是基本的了。
我的配置案例:
[common]
bind_port = 5000  (这里是供frpc客户端连接的端口,自定义,但是确保防火墙有开放)
token = 12341234 (密码自定义)
dashboard_port = 5500  这里是控制面板的端口
dashboard_user = admin
dashboard_pwd = admin
vhost_http_port = 5080 (这里是供frpc客户端连接的代理http端口,自定义,但是确保防火墙有开放)
subdomain_host = xxxx.f3322.net  (这里写你自己的动态域名,也就是你想用来访问内网机器的域名)
authentication_timeout = 0 (请加上这句,因为我测试发觉有的路由器断电启动之后ntp获取时间失败,导致时钟不同步,这样就出现验证失败的情况,加这句可以忽略时钟误差)

然后运行你的服务端,用dashboard看看是否正常运行。


2:在服务器端用hfs搭建简单的http服务器,把你配置好的配置文件(frpc.ini)和程序文件(frpc)拉拽到hfs程序里面,通过http发布给外网下载
然后从外网访问以下你的域名和对应端口,验证一下http是否已经成功发布这两个文件。
注意:请修改好你的frpc.ini之后再进行发布,我的配置示例如下:
[common]
server_addr = xxxx.f3322.net
server_port = 5000
token = 12341234
login_fail_exit = false   (实践发现加入这句可以大大提供启动成功率,不加的话一次失败就退出程序,加入这句可以30秒后客户端重试,这很关键)


[http]
type = http
local_ip = 192.168.10.1
local_port = 80
remote_port = 5080
subdomain = www
custom_domains = xxxx.f3322.net (这里就是你代理的域名)


3: 在远程内网客户端的openwrt路由器中,(建议ram至少64m吧,flash没要求,估计4m即可,我用8M的设备测试运行没问题),进入luci界面,在{系统菜单-system},选择{启动项-startup},输入一下命令,插入exit 0 之前:
例如我的:
# Put your custom commands here that should be executed once
# the system init finished. By default this file does nothing.

sleep 120
cd /tmp
wget http://xxxx.f3322.net:6080/frpc
chmod 777 frpc
wget http://xxxx.f3322.net:6080/frpc.ini
./frpc
exit 0

分别解释一下就是:
sleep 120  (休眠120秒,也就是两分钟,这很关键,因为没这个很大机会造成下面的步骤全失败,这是确保所有进程都处理处理完毕,cpu空闲的状态下去做下面的动作)
cd /tmp (进去tmp分区,也就是ram内存的临时分区,所以我建议ram最好达到64M)
wget http://xxxx.f3322.net:6080/frpc     (从你的http服务器下载frpc主程序文件,这里的网站根据你自己的域名进行修改)
chmod 777 frpc  (修改frpc的权限,赋予它可运行的属性)
wget http://xxxx.f3322.net:6080/frpc.ini  从你的http服务器下载frpc配置文件,这里的网站根据你自己的域名进行修改)

./frpc   (运行frpc主程序,它会自动找到同一目录的frpc.ini配置文件的)
exit 0  (退出操作)


以上我在ar71xx的openwrt路由器,和arm架构的openwrt路由器,都测试完美没问题,而且可以自己从https://github.com/fatedier/frp/releases 原作者这里下载最新版本的程序进行更新,也就是从服务端来进行程序更新就可以,我想对我这类小白来讲是最简单可行的方案了,有纰漏的还请各路高手帮忙补充。谢谢。

说几个要点,
1,        端口确定都在防火墙开放了。
2,        Hfs的端口也要在防火墙开放
3,        服务器和客户端的配置要匹配,包括端口,域名,和token
4,        客户端的启动步骤一定要加入sleep指令,等待最好120秒再开始执行下载的操作。
5,        路由器的ram别太小,因为frpc主程序文件就已经7M左右了,32M的ram估计刚刚好有点悬。
6,        搞清楚你的路由器架构,别下载错误的程序文件..


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×

评分

参与人数 1恩山币 +2 收起 理由
gee*** + 2 强大的恩山!(以下重复1万次)

查看全部评分

回复

使用道具 举报

 楼主| | 显示全部楼层
shenyz 发表于 2018-8-28 08:10
https://www.right.com.cn/forum/forum.php?mod=viewthread&tid=306836&highlight=frp%2Bluci  这个很好用的 ...

这个我用过,一直下载文件失败,试了几个固件版本都不行。
回复

使用道具 举报

leeanky 发表于 2018-8-28 09:02
这个我用过,一直下载文件失败,试了几个固件版本都不行。

可以换国内的源,目前可以下载。但frp2服务器已失联,其他服务器可用,但不支持1.61版。还是自己架服务器保险
回复

使用道具 举报

思路清奇,空间不足只能装在tmp里面用这种方法也不错
回复

使用道具 举报

我认为在hotplug联网操作加判断主程序是否运行成功 加while 最靠谱
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

欢迎大家光临恩山无线论坛上一条 /1 下一条

有疑问请添加管理员QQ86788181|手机版|小黑屋|Archiver|恩山无线论坛(常州市恩山计算机开发有限公司版权所有) ( 苏ICP备05084872号 )

GMT+8, 2024-5-10 15:06

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

| 江苏省互联网有害信息举报中心 举报信箱:js12377 | @jischina.com.cn 举报电话:025-88802724 本站不良内容举报信箱:68610888@qq.com 举报电话:0519-86695797

快速回复 返回顶部 返回列表