OpenWRT:基本网络配置

Raf*_*ino 6 networking wireless-networking openwrt wireless-router

刚刚在我的路由器中安装了 OpenWRT 12.09,但对接口/网桥/VLAN 有点困惑。 我的路由器

在我第一次启动后,我登录并设置了我的 root 密码,所以我使用 Luci 激活了我的 Wi-Fi,并花了我一点时间来弄清楚我可以将 Wi-Fi 与 LAN 桥接来访问互联网。但我最终遇到了两个问题:

  1. DHCP 地址由我的 ISP 提供(这很糟糕,因为我必须为每个 IP 支付额外费用)
  2. 我无法阻止来自 Internet/WAN 的 SHH 访问,所以我的路由器有点脆弱。

我应该如何配置(最好由 Luci 配置)以执行以下操作:

  • 此路由器向我的内部设备提供 DHCP,并解析 DNS
  • ISP 调制解调器提供的我的外部地址 (LAN/eth0)(因此我无法在此接口中简单地阻止端口 68)
  • 正确配置我的接口,以便我只能在内部(WAN/radio0)接口上允许 SSH

哪个以及为什么我应该选择使用网桥或 VLAN?这篇文章,不解释,也不提供任何线索。


一些注意事项: - 我是一个 Gentoo Linux 用户,所以我认为自己是一个很好的学习者,但还没有找到任何关于 OpenWRT 的好参考。- 我的设备是TP-Link TL-MR3020,因为它只有一个 LAN/eth0 接口和一个wirelss/radio0 接口。

更新:以下是我要查看的一些配置文件;tl;博士

这是我的“/etc/config/dhcp”文件

config dnsmasq
        option domainneeded '1'
        option boguspriv '1'
        option filterwin2k '0'
        option localise_queries '1'
        option rebind_protection '1'
        option rebind_localhost '1'
        option local '/lan/'
        option domain 'lan'
        option expandhosts '1'
        option nonegcache '0'
        option authoritative '1'
        option readethers '1'
        option leasefile '/tmp/dhcp.leases'
        option resolvfile '/tmp/resolv.conf.auto'

config dhcp 'lan'
        option interface 'lan'
        option start '100'
        option leasetime '12h'
        option limit '15'

config dhcp 'wan'
        option interface 'wan'
        option ignore '1'
Run Code Online (Sandbox Code Playgroud)

这是我的“/etc/config/network”文件

config interface 'loopback'
        option ifname 'lo'
        option proto 'static'
        option ipaddr '127.0.0.1'
        option netmask '255.0.0.0'

config interface 'lan'
        option ifname 'eth0'
        option type 'bridge'
        option proto 'static'
        option gateway '192.168.100.1'
        option dns '192.168.100.1'
        option ipaddr '192.168.100.2'
        option netmask '255.255.255.0'
Run Code Online (Sandbox Code Playgroud)

这是我的 /etc/config/wireless 文件

config wifi-device 'radio0'
        option type 'mac80211'
        option macaddr '64:66:b3:4d:8b:ce'
        option hwmode '11ng'
        option htmode 'HT20'
        list ht_capab 'SHORT-GI-20'
        list ht_capab 'SHORT-GI-40'
        list ht_capab 'RX-STBC1'
        list ht_capab 'DSSS_CCK-40'
        option txpower '27'
        option country 'US'
        option channel 'auto'

config wifi-iface
        option device 'radio0'
        option network 'lan'
        option mode 'ap'
        option ssid 'EDITED'
        option encryption 'psk-mixed'
        option key 'EDITED'
Run Code Online (Sandbox Code Playgroud)

西門 *_*Guy 2

看来您正在命令行中进行所有配置。

我之前尝试过 OpenWRT 并且安装了 WebGUI 来帮助您,您可以参考LuCI Essentials通过 LuCI 设置 Web 用户界面。通过 Web 浏览器访问来配置路由器(例如打开 SSH 和设置一些其他配置)将更容易通过 Web UI 进行。

编辑1.

所以你有3个问题,我将它们分开并尝试一一指出解决方案以便于理解。有一点必须声明,因为我的路由器从OpenWRT变成了DDWRT,然后又变成了Tomato。所以我使用VM(虚拟机)进行屏幕捕获和解决方案写作。如有1、2点细微差别,敬请谅解。我认为大多数情况都是一样的,因为我在刷入路由器之前使用 VM 来尝试 OpenWRT。

准备工作:(如果您还没有这样做),稍后当您的路由器配置为可由局域网机器访问时,即可访问LuCi。摘自LuCI Essentials

通过以下命令安装LuCi

opkg update
opkg install luci # without https OR
opkg install luci-ssl # with https support
/etc/init.d/uhttpd start # Start the web server (uHTTPd) manually
/etc/init.d/uhttpd enable # if you wish to start automatically on reboot
Run Code Online (Sandbox Code Playgroud)

1.我的外部地址(lan/eth0)由ISP调制解调器提供(所以我不能简单地阻止这个接口中的端口68) 我想你的意思是获取外部地址,对吧?实际上,当您设置路由器从 ISP(调制解调器)获取 DHCP 时,您的外部地址稍后会出现在 LuCi 中。

此设置应该完成以下工作:

vim /etc/config/network # edit network settings
save

#add the following lines to config
config 'interface' 'wan' # config the interface wan
        option 'proto' 'dhcp' # use protocol DHCP
        option 'ifname' 'eth1' # Physical interface name to assign to, this should be the network port connected to the your ISP modem, may vary eth1 or eth0 or whatever in your case

>>>command
ifup wan # bring WAN interface up
Run Code Online (Sandbox Code Playgroud)

到目前为止,当您打开客户端计算机(例如Windows 7)时,打开浏览器,输入192.168.100.1(您的情况),然后您应该在浏览器中看到OpenWRT界面。默认情况下密码什么都没有。

像这样的屏幕:

在此输入图像描述

2. 该路由器向我的内部设备提供 DHCP,并解析设备名称 (DNS)

当您可以通过客户端计算机浏览器连接到路由器时,Network -> Hostnames如果特定设备没有主机名或无法自动解析,您可以转到手动为特定设备分配主机名。(就我而言,默认没有问题)

3. 正确配置我的接口,以便我只能在内部 (wan/radio0) 接口上允许 ssh

根据OpenWRT 中的安全访问文档

“通过让 SSH 服务器 dropbear 和 web 服务器 uhttpd 不监听外部/WAN 端口”

操作方法如下:

vim /etc/config/dropbear
save

# add the following line to your dropbear
option Interface 'lan' # only listen to lan

>>>command
/etc/init.d/dropbear restart # or reboot if it doesn't work
Run Code Online (Sandbox Code Playgroud)

我认为这应该说明您问题的解决方案。

编辑2. 由于这是一篇很长的文章,我只是添加了参考链接以供将来的读者使用。