早些入手了一个华硕AC88U,一星期左右就闲鱼出去了,之后入了网件R7000,一直用网件,非常稳定。
前段时间又想着买个NAS玩玩,随便看看感觉都不便宜,于是决定自己DIY一个,那不如也带上路由的功能吧,于是就有了drouter的计划,本篇先从主机组装、Linux和基本路由功能说起吧。
硬件列表
- 技嘉J1900主板(低功耗, ITX,有PCI预防网卡坏掉,板载双网卡)
- 4G笔试本内存
- 两个2T日立企业盘,后面要组软RAID 1(企业盘就是贵,预算多的这里上SSD做系统盘感觉爽好多)
- JONSBO C2机箱(装得下两个3.5硬盘,又小巧的,只找到了这个)
- 全汉400W服务器电源(买上了档次的电源我都选择全汉,本来想试试新巨的)
系统安装
我选的是slackware 14.1,这个自己喜欢就好,但安装过程因为要组RAID 1,slackware还是说得很详细,大体上是:
- 使用cfdisk分区,我是分了root 100G,swap 8G
- 分区同步:
sfdisk -d /dev/sda | sfdisk --Linux /dev/sdb
- root:
mdadm --create /dev/md0 --level 1 --raid-devices 2 /dev/sda1 /dev/sdb1 --metadata=0.90
- swap:
mdadm --create /dev/md1 --name=1 --level 1 --raid-devices 2 /dev/sda2 /dev/sdb2
- mkswap:
mkswap /dev/md1
- 开始常规的slackware setup,lilo那里会失败,不用管先安装完
chroot /mnt
,修改lilo.conf,加入raid-extra-boot = mbr-only
,root和boot设为/dev/md0
,执行lilomdadm -Es > /etc/mdadm.conf
以记录软raid的信息,如果不执行这个,有可能会reboot失败
PPPOE拨号
- pppoe-setup
- 填入账号密码等
- FIREWALL=MASQUERADE
- pppoe-start,应该就可以拨上去了,使用网口eth1,ifconfig应该出现ppp0
- 如果要让系统访问外网,要加
iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT
,可以看看/etc/ppp/firewall-masq
/etc/resolv.conf
,我用的是119.29.29.29
和114.114.114.114
DHCPD(动态分配IP)
/etc/dhcpd.conf
1
2
3
4
5
6
7
8
9default-lease-time 600;
max-lease-time 7200;
subnet 192.168.1.0 netmask 255.255.255.0{
range 192.168.1.100 192.168.1.200;
option routers 192.168.1.1;
option domain-name-servers 119.29.29.29;
option ip-forwarding off;
option broadcast-address 192.168.1.255;
}
最后
eth0是对内网的,所以接到交换机,PC, AP等接入交换机,自动获取IP后,就可以上网啦,至此完成一台有基本路由功能的server。下面几个是为了增强稳定性的。
断线自动重连
/etc/cron.d/pppoe-keep.sh
1
2
3
4
5
6
7
8
9
while true; do
/sbin/ifconfig ppp0 > /dev/null
if [ $? -ne 0 ]; then
/usr/sbin/pppoe-start
fi
sleep 5
done断线自动重连 watch dog
/etc/cron.d/pppoe-keep_watchdog.sh
1
2
3
4
5
6
ps uax | grep 'pppoe-keep.sh' | grep -v grep
if [ $? -ne 0 ]; then
/bin/sh /etc/cron.d/pppoe-keep.sh &
ficrontab
1
2
3
# keep pppoe connecting
* * * * * /bin/sh /etc/cron.d/pppoe-keep_watchdog.sh每天自动断线一次
/etc/cron.daily/pppoe-stop
1
2
3
/usr/sbin/pppoe-stop每周机器自动重启一次
/etc/cron.weekly/reboot
1
2
3
/sbin/reboot
NOT THE END
一些脚本和配置都在这里https://github.com/imlcl/DRouter/。后面会有DDNS, NAS等续篇 : )