现在很多宽带不提供外网ip,很多人只能搞内网穿透,现在比较火的是用frp反向代理 ,但是frp的服务器架设是个问题,网上很多教程都是用VPS来架,其实用VPS主要是性能强,数据吞吐量大,方便多用户操作, 其实在一些用户比较少、要求比较低的场合,用有公网IP的路由器作服务器也是可以的,当然,frp服务端会耗一定的系统资源,所以路由器的性能越强越好,网上其实有这方面的例子,
比如K3刷梅林以后有这方面的教程:
http://koolshare.cn/forum.php?mod=viewthread&tid=66185&highlight=frp
而h大padavan也自带FRP服务端插件,论坛上坛友“robertlovesanna”有使用教程:
https://www.right.com.cn/forum/thread-317167-1-1.html
但是h大padavan不适配K2P,而荒野无灯大神的padavan没有frp服务器插件,只有客户端,用的还是xfrp,比较小众,本人小白一枚,买了个硬改的USB3.0+32MB闪存+512MB内存K2P,经过测试,发现k2p版padavan是可以作frp服务器的,步骤如下:(以下是在有公网ip的k2p里操作,荒大的xfrp不要打开)
1.先在“系统管理-服务”中启用SSH服务
2.去网站下载frp服务器程序,网址是https://github.com/fatedier/frp/releases,这里我用的是frp_0.18.0_linux_mipsle.tar.gz,0.18版不兼容以前版本,你也可以用其它版本的,只要服务器端和客户端用同一个版本就行了(但由于cpu的原因,只能选linux_mipsle的),下载后在windows下用winrar解压这个压缩包,里面有七个文件
3.用winscp将frps和frps.ini上传至K2P的一个可执行目录,我怕空间不够,直接在挂载的U盘目录/data/UsbDisk1/Volume1下新建了一个frp文件夹,上传以后把frps权限改为0777(貌似0755就够了)
4.在winscp里直接双击frps.ini,打开这个文件,更改服务器端配置,这里为了让程序尽快跑起来,减少错误,已经把设置简化了
[common]
bind_addr = 0.0.0.0 #这表示接收任意地址发来的连接
bind_port = 7000 #监听端口,和客户端要一样
token = 12345678 #连接密码,和客户端要一样,否则登录不上
dashboard_port = 7500 #控制台服务端口,用于查看frp工作状态,可以不要
dashboard_user = admin #控制台登录用户名,可以不要
dashboard_pwd = admin #控制台登录密码,可以不要
authentication_timeout = 0 #超时时间,设置为0则 frps 将不对身份验证报文时间戳进行超时校验,设为0并不太好,这里是为了减少出错,跑起来再说.
其实最少只要前三行就够了,控制台服务是为了查看frp工作状态的,不想看可以不要,并不是必需的。
5.在“自定义设置-脚本-‘在 WAN 上行/下行启动后执行:’”里添加启动frps代码:
这里注意,如果没有信心能够把服务跑起来,可以在ssh里执行一次“/media/netgear/frp/frps -c /media/netgear/frp/frps.ini ”也行,只是这样当命令窗口关掉后进程就会自动退出。
/media/netgear/frp/frps -c /media/netgear/frp/frps.ini 注意其中的空格
6.在“外部网络-端口转发”中打开“启用手动端口映射”,把7000和7500端口映射出去(我路由器内网ip为10.0.0.1)
7.服务器端就配置好了,重启路由器,应该就能够跑起来。在浏览器中打开“路由器外网ip:7500”来打开控制台查看frp运行情况,我的路由器是电信拨号公网Ip,每次重启地址都会变化,所以用了个3322的免费动态域名解析,如aaaa.3322.org,这样就只要打开“aaaa.3322.org:7500”即可查看控制台。界面如下:
如果打不开,应该是端口被占用或者frps服务端程序上传不完整 ,或者frps.ini文件格式有问题,一个个排查。
如果手上的k2p未经过硬改,可能会rom空间不够(我没测试,如果空间够最好了),或者内存不够跑起来会卡,因为frp是用go语言写的,按理要打开磁盘缓存才会流畅(我没开磁盘缓存,暂时也还好),这时k2p可能就不适合架设frp服务器了,如果路由器下挂了下载宝的话也可以用下载宝来架(应该斐讯T1和N1刷机后也可以,不过我没测试)。步骤和上面差不多,简单说下过程,就不上图了。
2.打开ssh,随便找个可执行目录把frps和frps.ini用winscp上传,我还是找了下载宝挂载的U盘目录 /data/UsbDisk1/Volume1/frp,上传后把/data/UsbDisk1/Volume1/frp/frps加上权限,把frps.ini内容改成需要的配置(和前面一样即可)。 3.在主路由器里打开端口映射,把7000和7500端口映射出去,这里我下载宝的内网ip是10.0.0.124,所以端口映射如下
4.把"/data/UsbDisk1/Volume1/frp/frps -c /data/UsbDisk1/Volume1/frp/frps.ini"添加到下载宝的任意一个启动脚本里,重启路由器,打开“aaaa.3322.org:7500”看看能不能进控制台,排除可能的问题后如果还是不行,估计是下载宝的防火墙的问题,用iptables命令把7000和7500及需要的端口开放,应该就可以了。
接下来简单展示一下客户端配置,以本人处于内网的一台刷h大padavan的k1为例:
主要内容是
[common]
server_addr = aaaa.3322.org
server_port = 7000
token = 12345678
[aaa] #这个服务名可以随便取,只要不重复就够了
type = tcp
local_ip = 192.168.2.1
local_port = 80
remote_port = 6001
这里我只穿透了一个端口,把内网K1的80端口用服务器端公网k2p的6001端口发布出去,注意此时公网k2p必须把6001端口作端口转发,凡要与内网建立联系的端口(一般是指remote_port)全都要转发出去。
现在,只要打开“aaaa.3322.org:6001”,就可以打开内网K1 padavan的管理界面了,穿透成功。
|