我对 ubuntu 了解不多。我正尝试在 UBUNTU 上运行 DHCP 服务器,以便共享 Dongle 3G 互联网。我禁用了路由器的 DHCP,并按照以下指南在 UBUNTU 中设置 DHCP 服务器。
这是我的/etc/default/isc-dhcp-server
:
# Defaults for isc-dhcp-server initscript
# sourced by /etc/init.d/isc-dhcp-server
# installed at /etc/default/isc-dhcp-server by the maintainer scripts
#
# This is a POSIX shell fragment
#
# Path to dhcpd's config file (default: /etc/dhcp/dhcpd.conf).
#DHCPD_CONF=/etc/dhcp/dhcpd.conf
# Path to dhcpd's PID file (default: /var/run/dhcpd.pid).
#DHCPD_PID=/var/run/dhcpd.pid
# Additional options to start dhcpd with.
# Don't use options -cf or -pf here; use DHCPD_CONF/ DHCPD_PID instead
#OPTIONS=""
# On what interfaces should the DHCP server (dhcpd) serve DHCP requests?
# Separate multiple interfaces with spaces, e.g. "eth0 eth1".
INTERFACES="enp2s0"
和我的/etc/dhcp/dhcpd.conf
:
default-lease-time 600;
max-lease-time 7200;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.33 192.168.1.200;
}
host server {
hardware ethernet 00:1D:92:EA:DB:3C;
fixed-address 192.168.1.33;
}
host tablet {
hardware ethernet 7C:0B:C6:B4:EE:43;
fixed-address 192.168.1.34;
}
我正在为服务器分配静态 IP,以便运行 bind9 DNS 服务器。我的客户端只有在我将它们配置为使用静态 IP 时才能连接,但如果我更改静态 IP 选项,服务器不会为它们分配 IP,UBUNTU 也不会获得 IP 地址。有没有更简单的方法来实现这一点。我急需帮助,因为没有客户端可以访问互联网。
以下是一些可能有用的附加信息:
我的/etc/dhcp/dhclient.conf
:
# Configuration file for /sbin/dhclient, which is included in Debian's
# dhcp3-client package.
#
# This is a sample configuration file for dhclient. See dhclient.conf's
# man page for more information about the syntax of this file
# and a more comprehensive list of the parameters understood by
# dhclient.
#
# Normally, if the DHCP server provides reasonable information and does
# not leave anything out (like the domain name, for example), then
# few changes must be made to this file, if any.
#
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
#send host-name "andare.fugue.com";
send host-name" /etc/dhcp/dhclient.conf
send host-name UBUNTU-DESKTOP;
#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
#send dhcp-lease-time 3600;
#supersede domain-name "fugue.com home.vix.com";
#prepend domain-name-servers 127.0.0.1;
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search, host-name,
dhcp6.name-servers, dhcp6.domain-search,
netbios-name-servers, netbios-scope, interface-mtu,
rfc3442-classless-static-routes, ntp-servers,
dhcp6.fqdn, dhcp6.sntp-servers;
#require subnet-mask, domain-name-servers;
timeout 300;
#retry 60;
#reboot 10;
#select-timeout 5;
#initial-interval 2;
#script "/etc/dhcp3/dhclient-script";
#media "-link0 -link1 -link2", "link0 link1";
#reject 192.33.137.209;
#alias {
# interface "eth0";
# fixed-address 192.5.5.213;
# option subnet-mask 255.255.255.255;
#}
#lease {
# interface "eth0";
# fixed-address 192.33.137.200;
# medium "link0 link1";
# option host-name "andare.swiftmedia.com";
# option subnet-mask 255.255.255.0;
# option broadcast-address 192.33.137.255;
# option routers 192.33.137.250;
# option domain-name-servers 127.0.0.1;
# renew 2 2000/1/12 00:00:01;
# rebind 2 2000/1/12 00:00:01;
# expire 2 2000/1/12 00:00:01;
#}
我记得我曾编辑过/etc/network/interfaces
文件。
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
sudo netstat -uap
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
udp 0 0 localhost:54557 *:* 694/Plex Media Serv
udp 0 0 MANTHAN-DESKTOP:36172 *:* 694/Plex Media Serv
udp 0 0 *:19844 *:* 4017/dhclient
udp 0 0 MANTHAN-DESKTOP:40486 *:* 694/Plex Media Serv
udp 0 0 *:32410 *:* 694/Plex Media Serv
udp 0 0 *:32412 *:* 694/Plex Media Serv
udp 0 0 *:32413 *:* 694/Plex Media Serv
udp 0 0 *:32414 *:* 694/Plex Media Serv
udp 0 0 *:1900 *:* 966/Plex DLNA Serve
udp 0 0 *:1901 *:* 694/Plex Media Serv
udp 0 0 MANTHAN-DESKTOP:domain *:* 2749/dnsmasq
udp 0 0 *:bootpc *:* 4017/dhclient
udp 0 0 *:bootpc *:* 3425/dhclient
udp 0 0 192.168.42.2:netbios-ns *:* 900/nmbd
udp 0 0 MANTHAN-DESK:netbios-ns *:* 900/nmbd
udp 0 0 *:netbios-ns *:* 900/nmbd
udp 0 0 192.168.42.:netbios-dgm *:* 900/nmbd
udp 0 0 MANTHAN-DES:netbios-dgm *:* 900/nmbd
udp 0 0 *:netbios-dgm *:* 900/nmbd
udp 0 0 *:43227 *:* 966/Plex DLNA Serve
udp 0 0 MANTHAN-DESKTOP:33368 *:* 694/Plex Media Serv
udp 0 0 localhost:49934 *:* 694/Plex Media Serv
udp 0 0 *:37737 *:* 966/Plex DLNA Serve
udp 0 0 *:13495 *:* 966/Plex DLNA Serve
udp 0 0 *:42239 *:* 3425/dhclient
udp6 0 0 [::]:17738 [::]:* 3425/dhclient
udp6 0 0 [::]:33559 [::]:* 4017/dhclient
注意:- 此系统中安装了 BIND9 DNS 服务器,但我未能正确配置它,但我希望它与此问题无关。
答案1
确保您已在 /var/cache/apt 目录中缓存了最新版本的 network-manager 和 network-manager-gnome 包。
如果不这样做,将会产生非常严重的问题,因为您将无法访问互联网。
怎么做 :http://www.tuxradar.com/answers/517
我执行了最小安装,因此它已保存在我的缓存中。然后使用以下命令删除 network-manager 和 network-manager-gnome。
sudo apt-get purge network-manager network-manager-gnome
然后再次重新安装并重新启动
sudo apt-get install network-manager network-manager-gnome -y && reboot
通过在终端中运行以下命令来找到要在其上运行 DHCP 服务器的网络接口。在我的情况下,它是 enp2s0。它可以是 eth0、eth1 等
ifconfig -a
现在到了主要部分。编辑 /etc/network/interfaces 文件。
sudo gedit /etc/network/interfaces
或者
sudo nano /etc/network/interfaces
粘贴以下内容:
allow-hotplug enp2s0 iface enp2s0 inet static name Lan address 192.168.1.33 netmask 255.255.255.0 network 192.168.1.0
用您的网络接口替换 enp2s0 并进行其他必要的修改。
对于 gedit,只需保存并退出即可。Nano 用户使用 ctrl + o 保存,然后按回车键 (enter) 键。然后按 ctrl + x 退出。
您一定注意到我使用了allow-hotplug
而不是 auto。这是因为在 UBUNTU 15.10(其他版本就不说了)启动期间,UBUNTU 会等待所有自动接口启动。因此,UBUNTU 会等待 2 分 3 秒(在我的情况下),然后完成启动过程。因此,为了减少启动时间并避免遇到此问题,我使用了allow-hotplug
。
最后修改主配置文件如下:
sudo gedit /etc/dhcp/dhcpd.conf
或者
sudo nano /etc/network/interfaces
ddns-update-style none;
authoritative;
log-facility local7;
default-lease-time 600;
max-lease-time 7200;
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.35 192.168.1.100;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.1.255;
option routers 192.168.1.33;
}
以下是 IP 预留。如果您要这样做,请将其替换7c:0b:c6:**:**:43
为您设备的 mac 地址。
host TABLET {
hardware ethernet 7c:0b:c6:**:**:43;
fixed-address 192.168.1.34;
}
同样,对于 gedit,保存并退出。Nano 用户使用 ctrl + o 保存,然后按回车键 (enter) 键。然后按 ctrl + x 退出。
请注意,在此配置中,address 192.168.1.33
上述接口文件与 匹配option routers 192.168.1.33
。同样network 192.168.1.0
,接口与 匹配subnet 192.168.1.0
。网络掩码和子网掩码也是如此。
正如 Doug Smythies 上面提到的,由于配置错误,我将 IP 范围设置为 192.168.1.35,因为我保留了 IP 地址 192.168.1.34。在保留列表和 IP 范围中保留相同的 IP 地址会产生问题。
最后一次重新启动不会造成任何损害。
reboot
如果遇到问题,请使用以下方式检查服务状态
service isc-dhcp-server status
因为我是一个没有经验的 UBUNTU 用户,所以我无法说出为什么它解决了这个问题,但它确实解决了,我分享这个答案是为了帮助像我一样没有经验的朋友。
特别感谢 Doug Smythies 对解决方案的关注和努力。请进行必要的更改和修正。
答案2
为了防止潜在的冲突,我不会在为常规 DHCP 地址保留的同一池中声明基于 MAC 的 IP 地址。我建议在您的/etc/dhcp/dhcpd.conf
文件中这样做:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.33 192.168.1.200;
}
应该是这样的:
subnet 192.168.1.0 netmask 255.255.255.0 {
range 192.168.1.40 192.168.1.200;
}
您的文件中声明的选项不够多/etc/dhcp/dhcpd.conf
。重要的遗漏是option routers 192.168.1.???;
(使用您的路由器 IP 地址)。