[我的小项目] 天翼网关路由器命令行客户端

这几天在外面玩,晚上无聊想看看电影,考虑到家里的树莓派已经整日整夜地下载,已经下载了很多电影了,所以想直接想以 Samba/WebDAV 的方式连接到家里面进行观看。 无聊的是,我忘记开放 Samba 的端口了,而且路由器的端口映射需要在路由器的管理页面才能进行操作,所以无奈放弃。准备回家分析一下路由器的协议自己写一个命令行配置客户端。 既然已经写下这篇文章了,说明我的客户端已经写好了。对,没错。回到家就开始写,花了两三个小时时间分析协议和写实现。对于我的路由器来说,完美运行。

但是,路由器种类那么多,所以没办法兼容所有型号,现在这个只针对:天翼网关(GPON)。

项目开源地址:https://github.com/movsb/gpon-client

以下是一些帮助和使用说明:

$ ./gpon-client
A GPON (Tiānyì Gateway) client used to modify router configurations.

Usage: ./gpon-client command [sub-command] [<arguments>...]

All Available Command List:

        portmaps list
        portmaps create  <name> <protocol> <outer-port> <inner-ip> <inner-port>
        portmaps delete  <name>
        portmaps enable  <name>
        portmaps disable <name>

运行环境初始化配置

请先在命令行下导出几个环境变量。

# 路由器IP地址,默认 192.168.1.1
$ export IP=192.168.1.1

# 路由器用户名,默认 useradmin
$ export USERNAME=useradmin

# 路由器密码,无默认
$ export PASSWORD=

示例使用

端口转发配置

枚举端口映射

$ ./gpon-client portmaps list
ID   Name            Protocol    OuterPort   InnerIP             InnerPort   Enable
-----------------------------------------------------------------------------------
1    test            BOTH        4321        192.168.1.6         1234        1     
2    nginx           TCP         8888        192.168.1.6         8888        1     
3    ssh             TCP         10022       192.168.1.6         22          1     
4    bt              BOTH        8999        192.168.1.6         8999        1     
5    https           TCP         443         192.168.1.6         443         1  

添加端口映射

$ ./gpon-client portmaps create nginx BOTH 443 192.168.1.6 443

删除端口映射

$ ./gpon-client portmaps delete nginx

启用端口映射

$ ./gpon-client portmaps enable nginx

禁用端口映射

$ ./gpon-client portmaps disable nginx

发表于:2019年06月23日 ,阅读量:286 ,标签:我的小项目 · 路由器

版权声明:若非特别注明,本站所有文章均为作者原创,转载请务必注明原文地址。