促成这篇文章的形成其实有很多因素,最早的时候用的路由是中兴的H618B,那240Mhz的处理器在脱机下载以及当NAS时性能感人,对了,那用的是Tomato系统,还只能双拨,就更感人了。后来换成了图拉丁,折腾了很久,又是敲腿又是自己动手焊了个DC-ATX电源,这时用的是OpenWRT系统的X86版本,性能方面好多了,好歹是图羊1G的频率,用了好长一段时间。但是因为是老板子了,没有PCI-E也没有装显卡,为了节省功耗嘛,可结果是出了点小问题又要死命折腾,很是啰嗦。实在累了,接着换了Modt平台,用了是建基i915的板子,处理器1.6G迅驰,又用了好长时间,可以说,这套东西基本上可以一直用下去了,系统非常稳定的,各种服务器运行非常正常。可是可是,某一天测功耗28瓦,天啊,还没加3.5硬盘呢,因为很久不看电影了,NAS功能一直没用,孰不可忍,加硬盘了还得了?换,于是某宝瞎逛,入手了一片N3150,真是牛逼,加上了所有的硬件都只有18瓦,包括3.5硬盘。可是如果只装个OpenWRT是不是大材小用啊,我都给它装了16G内存了,还能硬解码4K呢。于是,想起反正都是Linux的家族,应该Ubuntu也可以实现路由功能吧。
折腾这就又开始……备份硬盘资料,全盘安装Ubuntu,Desktop版本,现在的Linux系统安装应该说也是傻瓜的很,此过程忽略……
我这里是情况是板载千兆有线网卡,插了张PCI-E的AR9380无线网卡,还有一张RT2870USB无线网卡,RT2870是装了定向天线点对点接收单位的网络,有线网卡和9380做局域网使用。
第一步当然是用2870连上网络了,因为接下来会安装一些软件。接着用ifconfig -a查看所有的网卡名称,这等一下得用上。
sudo apt-get install isc-dhcp-servesudo apt-get install hostapdsudo apt-get install bridge-utilssudo apt-get install dnsmasq
配置网络接口:sudo gedit /etc/network/interfaces
auto loiface lo inet loopbackauto lan0 #有线网卡名称iface lan0 inet manualauto wlan0 #无线网卡名称iface wlan0 inet manualauto br0 #自定义的接口iface br0 inet staticaddress 192.168.1.1 本机局域网地址 别的机器网关就是它了netmask 255.255.255.0broadcast 192.168.1.255bridge-ports lan0 wlan0 #把两真实网卡桥连bridge_fd 9bridge_hello 2bridge_maxage 12bridge_stp off
配置DHCP服务器:sudo gedit /etc/dhcp/dhcpd.conf
subnet 192.168.1.0 netmask 255.255.255.0 { allow booting; allow bootp; interface br0; 网络接口填自定义的那个 option domain-name-servers 58.20.127.238,192.168.1.1; #分给客户的DNS地址 default-lease-time 604800; #7 days max-lease-time 2592000; #30 days range 192.168.147.100 192.168.1.200; option subnet-mask 255.255.255.0; option broadcast-address 192.168.1.255; option routers 192.168.1.1;}
sudo gedit /etc/default/isc-dhcp-server
INTERFACES="br0"
配置hostapd无线控制:sudo gedit /etc/hostapd/hostapd.conf
interface=wlan0 #无线网卡名称bridge=br0 # 自定义的driver=nl80211ssid=Ubuntu # 本热点的名称# country_code=UShw_mode=g # 模式channel=11 # 频道dtim_period=1rts_threshold=2347fragm_threshold=2346macaddr_acl=0# accept_mac_file=/etc/hostapd/hostapd.accept #MAC地址限制,需要建立这个文件# deny_mac_flie=/etc/hostapd/hostapd.denyauth_algs=3ieee80211n=1ht_capab=[HT40-][SHORT-GI-40][DSSS_CCK-40]wpa=2wpa_passphrase=88888888 # 热点密码wpa_key_mgmt=WPA-PSKwpa_pairwise=TKIP CCMPrsn_pairwise=CCMP
sudo gedit /etc/default/hostapd
RUN_DAEMON="yes"DAEMON_CONF="/etc/hostapd/hostapd.conf"
这样设置之后,这两网卡会在network-manager里显示未托管了,但是还能控制剩下那个无线网卡接入断开某个网络。配置dnsmasq需要network-manager禁用dnsmasq-base,默认开启了。sudo geidt /etc/NetworkManager/NetworkManager.conf,注释掉里面的dns=dnsmasq
打开dnsmasq配置文件:sudo gedit /etc/dnsmasq.conf
listen-address=192.168.1.123,127.0.0.1
127.0.0.1是给自己用的,192.168.1.1是给局域网别的机器用
还有dnsmasq本身是带dhcp服务的,这里关掉它
no-dhcp-interface=br0no-dhcp-interface=lan0no-dhcp-interface=wlan0
在/etc目录下建立resolv.dnsmasq.conf 文件,并把resolv-file变改文件指向
resolv-file=/etc/resolv.dnsmasq.conf
表示 dnsmasq 会从这个指定的文件中寻找上级 dns 服务器列表,而不是从本机的(resolv.conf)中读取dns服务器列表,如果机器的地址是通过dhcp取得的话,该文件容易受到影响从而影响dnsmasq。
最后,在rc.local文件里加上:
/etc/init.d/isc-dhcp-server start #启动DHCP服务iptables -t nat -A POSTROUTING -o wlan1 -j MASQUERADE #wlan1网络接入网卡
至此,一台超性能的路由+服务器一体机全部搞定,可惜了,家里装修的时候入网口没在客厅电视柜,否则装个KODI,又是一台HTPC了,而现在只能用来码代码了。