在日常网络故障排查过程中,大家通常会用到三个经典指令:nslookup、ping 和 traceroute。其中 nslookup 用于检查 DNS 相关设定,ping 用来确认本机与目标主机是否连通,traceroute 则用于追踪从本机到目标所经过的路由路径。
不过说实话,nslookup 的用法稍显繁琐——很多时候我们只是想单纯查询某台主机的 A 记录或 MX 记录,用这个工具显得有些大材小用。这里推荐两个更高效的替代工具:host 和 dig。两者功能相似,但效率明显更高。
host -a <主机名或IP>
输入主机名显示 DNS 正向解析,输入 IP 则显示反向解析(PTR 记录)。
dig <主机名或IP>
例如要查询 MX 记录:
dig 主机名 mx
2. 忘了 root 密码怎么办
如果不幸忘记了 root 密码,按照以下步骤操作即可恢复:
(1) 进入单用户模式
开机后看到提示:
Hit [Enter] to boot immediately, or any other key for command prompt.
Booting [kernel] in 10 seconds...
此时按空格键(或 Enter 以外的任意键)进入命令提示符模式,屏幕出现 ok。然后输入 boot -s 进入单用户模式。
(2) 选择 shell
系统会询问使用哪个 shell,默认是 /bin/sh,直接按回车接受即可。
(3) 挂载所有硬盘分区
# mount -a
(4) 重置密码
# passwd
密码长度需在 6 位以上,输入两次确认。
(5) 重启
# reboot
3. 软件的启动
修改了 *.conf 配置文件(如 Apache、Sendmail 等)后,需要重启对应服务。常用的方法有两种:
方法一:直接执行 rc.d 脚本
通常在 /usr/local/etc/rc.d/ 目录下会有对应的 .sh 文件,直接执行即可。注意一般需要带上参数,常见的参数有:start(启动)、stop(停止)、reload 或 restart(重新启动)。具体参数取决于软件本身。
方法二:使用 killall
例如要重启 inetd:
# killall -1 inetd
或者
# killall -HUP inetd
这两条命令都会使该守护进程重新加载配置。
4. 软件的安装(源码包)
以安装 samba-3.0.13.tar.gz 为例:
# tar -zxvf samba-3.0.13.tar.gz
# cd samba-3.0.13/source
# ./configure
# make
# make install clean
这种解压、配置、编译、安装的标准流程,适用于需要稳定可靠运行的源码包安装。
关于安装路径的说明:
系统安装时自带的软件:
- 执行文件:
/bin、/sbin、/usr/bin、/usr/sbin、/usr/libexec - 配置文件:
/etc - man 手册:
/usr/man或/usr/share/man - 文档:
/usr/share/doc
通过 port 或 package 安装的软件:
- 执行文件:
/usr/local/bin、/usr/local/sbin、/usr/local/libexec - 配置文件:
/usr/local/etc - man 手册:
/usr/local/man - 文档:
/usr/share/doc
以上是常见情况,具体路径视软件而定,并不绝对。
5. 在 FreeBSD 同一网卡上加多个 IP
有时需要让一张物理网卡绑定多个 IP 地址以满足特殊需求。在 FreeBSD 中操作非常简单。假设当前网卡 rl0 的 IP 是 211.211.211.211,想再添加一个 211.211.211.212:
(1) 在 /etc/rc.conf 中添加一行:
ifconfig_rl0_alias0="inet 211.211.211.212 netmask 255.255.255.255"
其中 alias0 是第一个别名,如果需要更多,可以依次使用 alias1、alias2 直到 aliasN。
(2) 执行 /etc/netstart 重启网络卡:
# /etc/netstart
常用命令速查
df — 查看文件系统磁盘空间使用情况。
df -h 以人类可读格式显示;df -ih 显示 inode 使用情况。
du — 显示目录或文件所占磁盘空间。
du -a 文件名
systat — 实时查看硬盘是否忙碌,了解磁盘 I/O 效率。
systat -vm 1
dmesg — 查看系统启动信息,获取有用的硬件信息。
ps — 查询系统进程状态。
ps -aux | grep apach* 可筛选相关进程。
adduser — 新增用户。
rmuser — 删除用户。
vipw — 编辑用户账户文件。
passwd — 变更密码。
ifconfig — 查询或设定网络接口参数。
ifconfig -a 查看所有接口;ifconfig de0 192.168.1.10 netmask 255.255.255.0 设定 IP;ifconfig de0 down 停止接口;ifconfig de0 up 启动接口。
route — 设定路由表。
route change default 192.168.1.254
netstat — 查询路由表或网络流量。
netstat -rn 查看路由表;netstat -I 查看接口流量统计;netstat -t 查看 TCP 连接;netstat -a 查看所有连接。
终端切换 — Alt+F1 到 Alt+F8 可切换不同终端。
去除内核配置文件中注释行:
$ sed -e '/^#/d' GENERIC > tmp
$ mv tmp GENERIC
top — 显示系统中 CPU 和内存资源使用排名,会持续更新。
ps 参数详解:
ps -aux 显示所有进程的详细信息。各字段含义:
USER 进程拥有者;PID 进程 ID;%CPU CPU 占用百分比;%MEM 内存占用百分比;VSZ 虚拟内存大小(KB);RSS 常驻内存大小(KB);TT 关联的终端编号;STAT 进程状态(R=可执行,D=等待磁盘 I/O,I=短时睡眠,S=长时睡眠,T=停止,Z=僵尸);常见附加标志:+ 表示前台进程,E 表示尝试退出,L 表示有页面被锁,s 表示会话领袖,W 表示被换出;STARTED 进程启动时间;TIME 已消耗的 CPU 时间;COMMAND 执行的命令名称和参数。
定时任务 crontab
crontab -e 编辑任务文件;crontab -d 删除任务;crontab -l 列出任务。
编写格式:
分 时 日 月 星期 执行用户 命令
示例:1 0 * * * root /home/word.sh 表示每天凌晨 1 点由 root 执行该脚本。
