找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
广告投放联系QQ68610888
查看: 12920|回复: 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万次)

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.

点评

这个我用过,一直下载文件失败,试了几个固件版本都不行。  详情 回复 发表于 2018-8-28 09:02
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

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

点评

可以换国内的源,目前可以下载。但frp2服务器已失联,其他服务器可用,但不支持1.61版。还是自己架服务器保险  详情 回复 发表于 2018-9-29 15:58
github自己下载对应的二进制文件,放到相应的目录(或者直接丢到bin文件夹就可以 了)  发表于 2018-8-29 07:49
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

可以换国内的源,目前可以下载。但frp2服务器已失联,其他服务器可用,但不支持1.61版。还是自己架服务器保险
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

思路清奇,空间不足只能装在tmp里面用这种方法也不错
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

我认为在hotplug联网操作加判断主程序是否运行成功 加while 最靠谱
我的恩山、我的无线 The best wifi forum is right here.
回复

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2024-4-28 12:42

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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

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