现在家中的路由器系统为Pandorabox,为了能方便的在公司或者外地远程管理家里的路由器,必须想办法能在外面访问路由器的80端口或者22端口。
这里介绍如何使用frp程序来实现,非常简单方便。
frp程序是一个可以实现内网穿透,支持tcp、http、https协议,能自定义域名绑定,方便到没朋友。
frp程序分为2部分,1)frps,服务端程序,需要部署到一台有公网IP的机器(比如ECS),2)frpc,客户端程序,即需要被远程访问的机器,这里就是我的路由器设备。
一、首先在服务器上部署frps程序
这里我的公网服务器使用的是Windows Server 2008系统,下载windows版的frp程序,由于服务器端只需使用frps,所以可以把frpc相关文件删除,编辑frps.ini文件:
[common] bind_port = 7000 vhost_https_port = 8801 dashboard_port = 7500 dashboard_user = admin dashboard_pwd = admin subdomain_host = domain.com
然后运行fps程序:
D:\tools\frp\frp_0.13.0_windows_amd64\frps.exe -c frps.ini
服务器端的配置相对简单。
注意,这里我仅绑定了一个https端口为8801,如果需要使用http,可以再加一行:
vhost_http_port = 8802
这样的话,架设服务器的外网IP为211.211.211.211,把自己的域名qwe.domain.com解析到211.211.211.211。
访问http使用:http://qwe.domain.com:8802,
访问https使用:https://qwe.domain.com:8801
二、配置客户端frpc程序
首先把frpc文件和frpc.ini传到路由器系统中,可以使用winscp软件,这里我放在在了/opt/frp目录下,修改frpc.ini文件:
[common] server_addr = 211.211.211.211 server_port = 7000 admin_addr = 127.0.0.1 admin_port = 7400 [web] type = https local_port = 443 subdomain = qwe use_encryption = true use_compression = true http_user = admin http_pwd = admin [ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000
这里我使用了这几项功能:
1)客户端热加载frpc.ini配置文件,客户端修改了frpc.ini文件,使用–reload参数可以实现热加载
admin_addr = 127.0.0.1 admin_port = 7400
2)使用密码保护的https网页,使用HTTP BASE AUTH加密网页,保存路由器页面,不让外人访问
http_user = admin http_pwd = admin
3)使用子域名访问,需要在服务器端的frps.ini文件中指定subdomain_host值
subdomain = qwe
4)转发SSH端口,在外面也能ssh家里的路由器,实现远程管理,其中的remote_port是服务器端监听的端口,默认是6000,不要修改
[ssh] type = tcp local_ip = 127.0.0.1 local_port = 22 remote_port = 6000
客户端启动frpc程序:
/opt/frp/frpc -c /opt/frp/frpc.ini &
如果需要reload,热加载配置文件:
/opt/frp/frpc -c /opt/frp/frpc.ini --reload
三、创建/etc/init.d/frpc文件,实现方便的启动关闭功能
#!/bin/sh /etc/rc.common START=100 start() { /opt/frp/frpc -c /opt/frp/frpc.ini & } stop() { killall -9 frpc } reload() { /opt/frp/frpc -c /opt/frp/frpc.ini --reload } restart() { stop sleep 1 start }
四、写入开机启动文件
在/etc/rc.local文件中写入:
# Put your custom commands here that should be executed once # the system init finished. By default this file does nothing. /opt/frp/frpc -c /opt/frp/frpc.ini > /dev/null 2>&1 & exit 0
五、在外面使用
1)访问路由器页面使用:https://qwe.domain.name:8801
2)使用ssh,IP为211.211.211.211,端口为6000,我在mRemoteNG中创建如下连接,即可使用:
3)使用基于SSH的SCP远程文件管理,既然SSH开放了,那管理文件也方便了,在Winscp中创建如下连接:
现在就像在家里一样能轻松管理路由器了,实现Web、SSH、File,全方位的管理。