动机:
出于以下几个原因,我想使用 Linux 服务器而不是普通的无线路由器
- 我想学习如何在Linux上设置更完整的服务器
- 我不想使用调制解调器、连接路由器、连接网络交换机
- 我厌倦了每隔 10 天就必须拔掉路由器的电源,因为它总是挂起
- 我已经厌倦了购买路由器,结果却发现它们缺少一些关键功能,例如端口转发或静态 IP 寻址 (dhcp)
设置:
最终,连接将进入调制解调器,并通过 直接进入我的服务器eth0
,然后eth1
输出到网络交换机,所有其他客户端计算机将通过以太网电缆连接到该交换机(暂时忘记无线)。但是,目前我在办公楼里,我的连接进入调制解调器,进入路由器,进入网络交换机,然后进入如上所述eth0
。
当前教程:
我看了一些教程(Ubuntu 教程是最好的一个),并且我在这里查看了一些路由器问题(即。这个),但它们都掩盖了几个关键概念,例如:
- 与有什么
eth1
关系eth0
?/etc/network/interfaces
我是否必须告诉用作eth1
(通常它是实际的物理路由器地址)?eth0
network
- 我是否需要做什么来指示
eth1
将进入的互联网eth0
传递给网络交换机中需要它的人?
当前方法:
这是我/etc/network/interfaces
在服务器上的文件:
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.70
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
auto eth1
# iface eth1 inet dhcp
iface eth1 inet static
address 192.168.7.0
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
并ifconfig
告诉我两个网卡工作正常:
eth0 Link encap:Ethernet HWaddr 20:cf:30:55:a0:5f
inet addr:192.168.1.70 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::22cf:30ff:fe55:a05f/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:11297 errors:0 dropped:0 overruns:0 frame:0
TX packets:16639 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:948633 (948.6 KB) TX bytes:1274685 (1.2 MB)
eth1 Link encap:Ethernet HWaddr 00:11:95:f7:f4:6d
inet addr:192.168.7.0 Bcast:192.168.1.255 Mask:255.255.255.0
inet6 addr: fe80::211:95ff:fef7:f46d/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:243 errors:0 dropped:0 overruns:0 frame:0
TX packets:3231 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:29934 (29.9 KB) TX bytes:213055 (213.0 KB)
Interrupt:21
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:5348 errors:0 dropped:0 overruns:0 frame:0
TX packets:5348 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:470737 (470.7 KB) TX bytes:470737 (470.7 KB)
wlan0 Link encap:Ethernet HWaddr bc:f6:85:f8:70:5c
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
route -n returns
服务器上的内容如下:
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth1
192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.7.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
然后在客户端我有
auto lo
iface lo inet loopback
iface eth0 inet dhcp
但它没有被分配 IP 地址。
编辑:这是 isc-dhcp-server 配置文件,/etc/dhcp3/dhcpd.con
我大部分内容都从中复制而来本网站。
# Sample /etc/dhcpd.conf
# (add your comments here)
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.254;
option domain-name-servers 192.168.1.1, 192.168.1.2;
option domain-name "mydomain.example";
subnet 192.168.7.0 netmask 255.255.255.0 {
range 192.168.7.10 192.168.7.25;
}
编辑:输出sudo iptables -L
Chain INPUT (policy ACCEPT)
target prot opt source destination
Chain FORWARD (policy DROP)
target prot opt source destination
ACCEPT all -- anywhere anywhere ctstate RELATED,ESTABLISHED
ACCEPT all -- anywhere anywhere
LOG all -- anywhere anywhere LOG level warning
Chain OUTPUT (policy ACCEPT)
target prot opt source destination
问题:
在这个设置中我缺少哪些关键步骤/组件?
答案1
我必须像开膛手杰克一样离开,因为你缺少几样东西:
如果您的客户端将使用 DHCP 来获取 IP,则您需要一个 DHCP 服务器。
iface eth0 inet dhcp
在客户端中,这表示他们将从 DHCP 服务器获取其 IP,如果您没有设置 DHCP 服务器,则您应该使用固定 IP 或安装 DHCP 服务器。
您缺少在客户端中配置的 DNS 服务器。这可能是由于缺少 DHCP 服务器,也可能是您希望为整个网络使用本地 DNS 服务器。
你没有提供
iptables
规则(的输出sudo iptables -L
),但我猜你没有激活 Masquerade 规则,也没有激活 IP 转发如所述。eth1
不建议使用 的 IP 地址。以 结尾的任何 IP0
通常都是网络本身,并且大多数路由器/防火墙在使用时都会感到困惑。将其更改为192.168.7.1
,您基本上就可以了。您
broadcast
在接口中的值eth1
不正确。 正在将包发送到无处。 正确的值(考虑到接口的其他值)是192.168.7.255
。DHCP 服务器中的选项非常糟糕。发往路由器的 ARP 包永远无法到达。您应该看到以下情况:
default-lease-time 600; max-lease-time 7200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.7.255; option routers 192.168.7.1; ## This should be the same value of the step 4 option domain-name-servers 8.8.8.8; subnet 192.168.7.0 netmask 255.255.255.0 { range 192.168.7.10 192.168.7.25; }
按照这些操作,你的路由器很可能就会正常工作。
答案2
Braiam 回答了我的问题,但我认为在这里提供一份详尽的演练会很有帮助。如果我犯了任何错误,请更新。
首先确保您有两张以太网卡(NIC),并/etc/network/interfaces
按此更新文件(执行不是误以为这是/etc/networks
文件)。
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.70
netmask 255.255.255.0
broadcast 192.168.1.255
network 192.168.1.0
gateway 192.168.1.1
dns-nameservers 8.8.8.8
auto eth1
iface eth1 inet static
address 192.168.7.1
netmask 255.255.255.0
broadcast 192.168.7.255
network 192.168.1.0
要查找您的gateway
和broadcast
,network
请关注这些说明。
接下来,进入客户端并编辑/etc/network/interface
(再次,不是 /etc/networks
) 文件来获取静态 ip,以确保至少 NIC 卡可以正常工作。
iface eth0 inet static
address 192.168.7.75
netmask 255.255.255.0
network 192.168.7.0
broadcast 192.168.7.255
gateway 192.168.7.1
更改值以匹配上述值。如果有效,那就太好了,然后使用说明这里但跟随他们确切地,因为有几个dhcp
文件,所以不要将该文件夹/etc/dhcp
与/etc/dhcp3
等等混淆。