我经常通过 SSH 从各个远程位置登录运行 Ubuntu 的家用计算机。有时我想更改家用 Linksys 路由器上的设置 - 端口转发设置或禁用/启用无线等。
当我尝试使用 links2 文本浏览器对其进行配置时,我无能为力,因为选项卡标题没有显示(大概是因为它们是图片)。
还有其他方法可以通过命令行配置 Linksys 路由器吗?我想我可以在家用机器上设置代理,然后使用连接到该代理的浏览器来配置它,但我认为可能有一种非浏览器方式可以做到这一点。
答案1
一些第三方路由器固件(例如DD-WRT,OpenWRT,番茄等)为路由器提供 SSH 接口。我会在 LAN 端启用此功能,但不会在 WAN 端启用。(您也可以使用非标准端口和非常强的密码在 WAN 端启用它;同样,您可以启用 WAN 对 Web 界面的访问;但我不推荐这些配置。)
启用后,您可以从 LAN 内通过 SSH 进入路由器。(例如,如果在 LAN 上启用了 SSH 接口,但在 WAN 上未启用,则您需要通过 SSH 进入 Ubuntu 计算机,然后从那里再次通过 SSH 进入路由器。)到达那里后,您将获得一个最小 shell(通常由 BusyBox 提供),并可以访问配置文件、守护程序脚本、固件设置和已安装的任何命令。
例如,我有一台运行 OpenWRT 的旧 Linksys WRT54G。通过 SSH 接口,我可以访问:
- iptables(例如,开放临时端口);
- 这/etc/hosts和/etc/dnsmasq.conf文件(例如,用于添加本地 DNS 覆盖或调整 DHCP 服务器);以及
- 这重启命令(如果需要)。
我还可以检查固件设置(nvram 显示),修改它们(设置nvram),并将它们写入非易失性闪存(nvram 提交)。您可以在 Web 界面中访问的大部分内容都可以通过内存,但要小心。这旧的 OpenWRT HowTo 描述了基本的内存用法;网上可能有更好、更新的指南,因此请仔细阅读并在使用该实用程序时小心。
答案2
如果您使用 ssh,您可以设置一个快速临时的代理:
ssh -L 9000:routerip:80 homemachine
然后在本地计算机上,将网页浏览器指向http://127.0.0.1:9000/您应该会看到路由器的配置屏幕。routerip
这是您的家用 Ubuntu 机器用于连接路由器的 IP。
如果您使用的是 puTTY,这些设置位于连接->SSH->隧道源端口9000
、目标routerip:80
、类型下Local
(然后单击“添加”,然后像平常一样打开连接)。
它是一个快速、简单的代理,您可以在需要连接和调整某些东西时随时进行设置。
答案3
我写了一个脚本来重启我的路由器(摩托罗拉 Surfboard)。它是这里问题是,当从 LAN 内部扫描时,路由器上唯一开放的端口是端口 80,该端口提供了一个 HTML 配置页面。