Linux 的网络功能相当的强悍,一时之间我们也无法完全的介绍所有的网络指令,这个章节主要的目的在介绍一些常见的网络指令而已。至于每个指令的详细用途将在后续 服务器架设时,依照指令的相关性来进行说明。当然,在这个章节的主要目的是在于将所有的指令汇整在一起,比较容易了解啦! |
[root@test
test]# ifconfig interface
[root@test test]# ifconfig interface [options] 参数说明: interface :网络适配卡代号,例如 eth0, eth1... options :主要有以下几个参数 network :网段 broadcast :广播网段 netmask :子网掩码 up|down :启动|关闭网络接口 范例: [root@test root]# ifconfig # 这个指令在没有加上网络卡时,会将所有的网络接口内容显示出来 eth0 Link encap:Ethernet HWaddr 00:50:FC:22:9C:57 inet addr:192.168.1.2 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:5793395 errors:0 dropped:0 overruns:0 frame:0 TX packets:6032143 errors:0 dropped:0 overruns:0 carrier:0 collisions:983 txqueuelen:100 RX bytes:534796148 (510.0 Mb) TX bytes:2607882970 (2487.0 Mb) Interrupt:10 Base address:0x6100 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:3258 errors:0 dropped:0 overruns:0 frame:0 TX packets:3258 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:170063 (166.0 Kb) TX bytes:170063 (166.0 Kb) [root@test root]# ifconfig eth0 192.168.0.2 netmask 255.255.255.0 \ > broadcast 192.168.0.255 上面再将 eth0 这个网络接口的 IP 属性修改为 192.168.0.2 这个 IP ,广播地址也跟着改变了! [root@test root]# ifconfig eth0 # 将修改完的咚咚显示出来一下! eth0 Link encap:Ethernet HWaddr 00:50:FC:22:9C:57 inet addr:192.168.0.2 Bcast:192.168.0.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:5793395 errors:0 dropped:0 overruns:0 frame:0 TX packets:6032143 errors:0 dropped:0 overruns:0 carrier:0 collisions:983 txqueuelen:100 RX bytes:534796148 (510.0 Mb) TX bytes:2607882970 (2487.0 Mb) Interrupt:10 Base address:0x6100 [root@test root]# ifconfig eth0 down <==关闭 eth0 网络卡 [root@test root]# ifconfig eth0 up <==启动 eth0 网络卡! |
[root@test
root]# ifup [interface]
[root@test root]# ifdown [interface] 参数说明: 范例: [root@test root]# ifup eth0 <==启动 eth0 这块网络卡! [root@test root]# ifdown eth0<==关闭 eth0 这块网络卡 |
[root@test
root]# route [-nee]
[root@test root]# route add [-net|-host] 目标主机或网域 [netmask] [gw|dev] [root@test root]# route del [-net|-host] 目标主机或网域 [netmask] [gw|dev] 参数说明: -n :列出的信息以 IP 来显示 -ee :列出较长列的信息 add :增加路由信息 net :删除一个路由信息 -net :增加一个『网域』的路由,例如 C Class 的网域! -host :增加到某个 IP 主机的路由! netmask :就是 netmask 呀! gw :这个是路由的通讯闸! gw 是以 IP 来建置的 dev :这个是路由的通讯闸! dev 是以 界面 ( internet ) 代号来建置的! 范例: [root@test root]# route<==看路由的信息! Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 140.116.141.253 * 255.255.255.255 UH 0 0 0 ppp0 192.168.1.0 * 255.255.255.0 U 0 0 0 eth0 127.0.0.0 * 255.0.0.0 U 0 0 0 lo default 140.116.141.253 0.0.0.0 UG 0 0 0 ppp0 [root@test root]# route -n <==以 IP 的方式来显示路由! Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 140.116.141.253 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0 192.168.1.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0 127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo 0.0.0.0 140.116.141.253 0.0.0.0 UG 0 0 0 ppp0 注意到 route, route -n 这两个范例喔!使用 -n 与否会使 domain 是否进行查询, 一般来说,我都喜欢加上 -n 的,因为不必去查询正反解,显示速度较快, 此外, default gateway 就是 0.0.0.0 喔! [root@test root]# route add -net 192.168.0.0 netmask 255.255.255.0 dev eth0 # 新增一个路由规则! [root@test root]# route del -net 192.168.0.0 netmask 255.255.255.0 dev eth0 # 删除一个路由啰 [root@test root]# route add default gw 192.168.1.2 # 增加一个 default gateway 呢! 注意一下, gw 后面接的是 IP ,而 dev 后面接的则是装置代号喔! |
[test@test
test]# ping [-b broadcast]
[test@test test]# ping [-c number] host 参数说明: -b broadcast :当要 ping 一个网段时,可以使用这个方式来『广播』! -c number :后面加上 number (数字)可以限制 ping 几次! 范例: [test@test test]# ping -c 5 tw.yahoo.com <==除了IP也可以 ping domain name! PING tw.yahoo.com (202.1.237.21) from 61.28.113.1 : 56(84) bytes of data. 64 bytes from tw.yahoo.com (202.1.237.21): icmp_seq=0 ttl=245 time=7.133 msec 64 bytes from tw.yahoo.com (202.1.237.21): icmp_seq=1 ttl=245 time=7.497 msec 64 bytes from tw.yahoo.com (202.1.237.21): icmp_seq=2 ttl=245 time=6.625 msec 64 bytes from tw.yahoo.com (202.1.237.21): icmp_seq=3 ttl=245 time=6.457 msec 64 bytes from tw.yahoo.com (202.1.237.21): icmp_seq=4 ttl=245 time=6.434 msec --- tw.yahoo.com ping statistics --- 5 packets transmitted, 5 packets received, 0% packet loss round-trip min/avg/max/mdev = 6.434/6.829/7.497/0.421 ms [test@test test]# ping -b 192.168.1.255 -c 2 <==这里必须是广播地址 WARNING: pinging broadcast address PING 192.168.1.255 (192.168.1.255) from 192.168.1.254 : 56(84) bytes of data. 64 bytes from 192.168.1.36: icmp_seq=0 ttl=255 time=191 usec 64 bytes from 192.168.1.45: icmp_seq=0 ttl=255 time=492 usec (DUP!) 64 bytes from 192.168.1.254: icmp_seq=0 ttl=255 time=531 usec (DUP!) --- 140.116.44.255 ping statistics --- 2 packets transmitted, 2 packets received, +6 duplicates, 0% packet loss round-trip min/avg/max/mdev = 0.134/0.811/2.094/0.647 ms |
[root@test
root]# traceroute [-i interface] [-g gateway]
[host|IP]
参数说明: -i :使用这个 interface 来连出去!例如 eth0, ppp0 等! -g :使用这个 gateway 来连出去!例如 192.168.1.2, 140.116.141.29 等! 范例: [root@test root]# traceroute tw.yahoo.com traceroute to tw.yahoo.com (202.1.237.21), 30 hops max, 38 byte packets 1 140.116.141.253 (140.116.141.253) 123.958 ms 96.357 ms 97.810 ms 2 140.116.140.253 (140.116.140.253) 103.548 ms 87.607 ms 78.227 ms 3 163.28.112.253 (163.28.112.253) 99.522 ms 84.379 ms 79.858 ms 4 210.242.251.246 (210.242.251.246) 104.429 ms 86.622 ms 79.857 ms 5 211.22.226.50 (211.22.226.50) 97.897 ms 86.031 ms 87.177 ms 6 TaiPei-TANET-P1.BR.HiNet.NET (168.95.207.242) 101.981 ms 58.149 ms 60.231 ms 7 168.95.17.162 (168.95.17.162) 69.198 ms 63.294 ms 58.594 ms 8 210.65.200.10 (210.65.200.10) 65.950 ms 67.336 ms 63.503 ms 9 211.22.35.169 (211.22.35.169) 67.572 ms 92.535 ms 83.105 ms 10 211.22.41.89 (211.22.41.89) 106.855 ms 92.540 ms 87.201 ms 11 alteon6.tpe.yahoo.com (202.1.237.253) 122.347 ms 92.235 ms 91.266 ms |
[root@test
root]# netstat [-r] [-i interface]
[root@test root]# netstat [-antulp] 参数说明: -r :显示出 route 的意思; -i :显示出 interface 的内容,跟 ifconfig 类似啦! -a :显示出目前所有的网络联机状态! -n :预设情况中,显示出的 host 会以 host name 来显现,若为 n 则可以使 port 与 host 都以数字显示 -t :仅显示 tcp 封包的联机行为 -u :仅显示 udp 的封包联机状态 -l :仅显示 LISTEN 的内容 -p :同时显示此一联机的 PID 喔!(注意:只有 root 才能行使此功能!) 范例: [root@test root]# netstat -r # 嘿嘿!显示出目前的路由表!与 route 指令的功能相同。 Kernel IP routing table Destination Gateway Genmask Flags MSS Window irtt Iface 140.116.141.253 * 255.255.255.255 UH 40 0 0 ppp0 192.168.1.0 * 255.255.255.0 U 40 0 0 eth0 192.168.0.0 * 255.255.255.0 U 40 0 0 eth0 127.0.0.0 * 255.0.0.0 U 40 0 0 lo default 140.116.141.253 0.0.0.0 UG 40 0 0 ppp0 [root@test root]# netstat -i eth0 # 看看底下显示出的内容,是否跟 ifconfig eth0 类似呀!? Kernel Interface table Iface MTU Met RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg eth0 1500 077199373 0 0 169616342 0 0 0 BMRU lo 16436 0 1130485 0 0 0 1130485 0 0 0 LRU [root@test root]# netstat -an<==显示所有的联机状态,并且以数字型态显示 [root@test root]# netstat -tul <==显示 LISTEN 的及 tcp 与 udp 的联机状态,如下: Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:mysql *:* LISTEN tcp 0 0 *:netbios-ssn *:* LISTEN tcp 0 0 *:pop3 *:* LISTEN tcp 0 0 *:http *:* LISTEN tcp 0 0 *:ftp *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 *:smtp *:* LISTEN udp 0 0 *:netbios-ns *:* 注意:上面的 LISTEN 表示该 port 是已经在 监听 网络服务啦!而左边的 tcp 指的是 tcp 封包! [root@test root]# netstat -anp | more <==这个指令很常下达!请记得呦! |
[root@test
root]# host [-a] domain_name
参数说明: -a :显示出所有的信息 范例: [root@test root]# host tw.yahoo.com <==仅显示出主机的 IP tw.yahoo.com. has address 202.1.237.21 [root@test root]# host -a tw.yahoo.com <==所有的主机信息显示! Trying "tw.yahoo.com." ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 59138 ;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 5, ADDITIONAL: 5 ;; QUESTION
SECTION:
;; ANSWER SECTION:
;; AUTHORITY
SECTION:
;; ADDITIONAL
SECTION:
Received 216 bytes from 163.28.112.1#53 in 10 ms |
[root@test
root]# nslookup [domain_name|IP]
参数说明: 范例: [root@test root]# nslookup tw.yahoo.com <==由 domain name 查询 IP! Note: nslookup is deprecated and may be removed from future releases. Consider using the `dig' or `host' programs instead. Run nslookup with the `-sil[ent]' option to prevent this message from appearing. Server: 163.28.112.1 Address: 163.28.112.1#53 Non-authoritative
answer:
[root@test root]#
nslookup
202.1.237.21 <==由 IP 查询 domain name
Non-authoritative
answer:
Authoritative
answers can be found from:
|
[root@test
root]# telnet [-8] [host|IP] [port]
参数说明: -8 :可以减少乱码的情况 port:服务的埠口!例如 POP3 的 110 ,SMTP 的 25 port 等等!telnet 可以用来侦测! 范例: [root@test root]# telnet -8 bbs.sayya.org bbs.sayya.org ? SayYA Linux 信息站 ? 140.113.22.98 欢迎光临【 SayYA 信息站 】目前在线人数 [41] 人 【 SayYa Linux's BBS 站台 】
一个以 Linux 消息、知识、互动服务之专业 BBS 站
参观用账号:guest,申请新账号:new 请输入代号:guest
[root@test root]#
telnet
localhost 110
|
[root@test
root]# ftp [-p] host [port]
参数说明: -p :启动 PASSIVE 模式! 范例: [root@test root]# ftp localhost <==预设是以 port 21 来进行联机 [root@test root]# ftp localhost 1354 # 如果您设定的 ftp 的 port 非正规的 21 ,则可以这样! [root@test root]# ftp localhost <==连接到远程主机 Connected to localhost (127.0.0.1). 220 localhost FTP server (Version wu-2.6.1-20) ready. Name (127.0.0.1:test): test <==输入账号 331 Password required for test. Password: <==输入密码 230 User test logged in. Remote system type is UNIX. Using binary mode to transfer files. ftp> dir <==显示远方主机的内容 ftp> cd <==变换远程主机的目录 ftp> close or bye or exit <==离开远程主机 ftp> get file <==取得远程主机的档案 ftp> mget file <==取得所有的档案,较 get 好用!例如 mget .bash* ftp> put file <==将本地端档案 file 丢到远程主机上 ftp> mputfile <==将一些档案上传咯 ftp> delete file <==杀掉远程主机的 file 档案 ftp> help <==显示求救指令! ftp> mkdir dir <==在远程主机上面建立目录 ftp> lcd <==变换本地端路径! ftp> ascii or binary <==以 ASCII 模式或 BINARY 模式捉取数据!? |
[root@test
root]# ncftp [host]
[root@test root]# ncftp [ftp://domain.name/path] 参数说明: 可以直接连接到 host 主机,也可以直接连接到主机的某个路径之下,相当的方便 范例: [root@test root]# ncftp ftp.nsysu.edu.tw <==连接到中山大学 FTP 站 [root@test root]# ncftp ftp://ftp.nsysu.edu.tw/Linux # 直接连接到该 FTP 主机里面的 Linux 目录下! # 不过底下的画面因为经过转存,所以产生了乱码~在 Putty 底下是正常的! NcFTP 3.0.3 (April 15, 2001) by Mike Gleason (ncftp@ncftp.com). Copyright (c)
1992-2001 by Mike Gleason.
Connecting to ftp.nsysu.edu.tw... ======================================================================
========================================================================
远程主机的一些服务指令:
本地端主机的一些指令功能:
|
[root@test
root]# lynx http://web.site
参数说明: 范例: [root@test root]# lynx http://tw.yahoo.com tw.yahoo.com cookie: B=b7hd3jkukeu1e&b=2 Allow? (Y/N/Always/neVer) A # 上面输入 A 就可以接受 cookie 了! Yahoo!奇摩 (p1 of 5) [USEMAP:yk_masthead_142.gif]
小中~蓎胣语 9成国小偷跑 法国热浪 死亡人数直冲5千人 南洋-
如何冲印出好照片?
【拍卖】 [auc_ani.gif]
|
[root@test
root]# vi /etc/lynx.cfg
.... 略 ....找到底下的三行字符串 ##CHARACTER_SET:iso-8859-1 <==大约在 394 行处 #ASSUME_CHARSET:iso-8859-1 <==大约在 409 行处 #PREFERRED_LANGUAGE:en <==大约在 537 行处 将上面三行的 # 符号取消,并且改成底下这样: CHARACTER_SET:big5 <==这就是 Big5 中文的编码 ASSUME_CHARSET:big5 <==跟上面的说明一样! PREFERRED_LANGUAGE:zh_TW <==这个就是语系的支持! 语系的支持方面,您可以查看一下 /etc/sysconfig/i18n 这个档案, zh_TW 指的就是台湾!做了上面设定之后,就可以看中文啰! |
[root@test root]# lynx -dump http://the.site.doname.name/xxx.gif > file.gif |
[root@test
root]# wget http://domain.name/file
[root@test root]# wget http://ftp.nsysu.edu.tw/Unix/Web/counter/Count2.6/Count2.6/download/src/wwwcount2.6.tar.gz --14:54:45-- http://ftp.nsysu.edu.tw/Unix/Web/counter/Count2.6/Count2.6/download/src/wwwcount2.6.tar.gz => `wwwcount2.6.tar.gz' Connecting to ftp.nsysu.edu.tw:80... connected! HTTP request sent, awaiting response... 200 OK Length: 433,312 [application/x-gzip]
0K .......... .......... .......... .......... .......... 11% @ 746.27
KB/s
14:54:46 (780.73 KB/s) - `wwwcount2.6.tar.gz' saved [433312/433312] |
[root@test
root]# vi /etc/wgetrc
.... 略 ....找到底下的两行字符串 #http_proxy = http://proxy.yoyodyne.com:18023/ <==在 75 行处 #use_proxy = on <==在 78 行处 将上面两行的 # 符号取消,并且改成底下这样: http_proxy = http://proxy.ncku.edu.tw:3128/ use_proxy = no |
[root@test
root]# wget http://www.svgalib.org/svgalib-1.4.3.tar.gz
[root@test root]# wget http://jmcce.slat.org/DOWNLOAD/jmcce-1.4RC2.tar.gz |
1. 先安装 svgalib
1.1 如果以 RPM 安装的话(较不建议): [root@test root]# rpm -ivh svgalib-*.rpm 这样就 OK 了! 1.2 如果以 Tarball 安装的话(较建议的安装模式): [root@test root]# cd /usr/local/src [root@test src]# tar -zxvf /root/svgalib-1.4.3.tar.gz [root@test src]# cd svgalib-1.4.3 [root@test svgalib-1.4.3]# cd utils/ [root@test utils]# ln -s ../src/vga.h vga.h [root@test utils]# vi Makefile # 找到底下这一行( 约在第 16 行 ): CFLAGS = $(WARN) $(OPTIMIZE) -I../include # 修改成: CFLAGS = $(WARN) $(OPTIMIZE) -I../include -L../sharedlib [root@test utils]# cd .. [root@test svgalib-1.4.3]# make install [root@test svgalib-1.4.3]# cd /usr/lib [root@test lib]# ln -s /usr/local/lib/libvga.so.1 . # 会有一些错误讯息,不过只与 man 有关,没有关系!先略过去! 2. 再安装 jmcce 这个套件吧! [root@test root]# rpm -e libtool autoconf automake # 先移除一些较新的套件咯! 2.1 先装 autoconf [root@test root]# cd /usr/local/src [root@test src]# tar -zxvf /root/autoconf-2.13.tar.gz [root@test src]# cd autoconf-2.13 [root@test autoconf-2.13]# ./configure --prefix=/usr/local [root@test autoconf-2.13]# make && make install 2.2 安装 automake [root@test autoconf-2.13]# cd /usr/local/src [root@test src]# tar -zxvf /root/automake-1.4.tar.gz [root@test src]# cd automake-1.4 [root@test automake-1.4]# ./configure --prefix=/usr/local [root@test automake-1.4]# make && make install 2.3 安装 libtool [root@test automake-1.4]# cd /usr/local/src [root@test src]# tar -zxvf /root/libtool-1.4.2.tar.gz [root@test src]# cd libtool-1.4.2 [root@test libtool-1.4.2]# ./configure --prefix=/usr/local [root@test libtool-1.4.2]# make && make install 2.4 安装 jmcce [root@test libtool-1.4.2]# cd /usr/local/src [root@test src]# tar -zxvf /root/jmcce-1.4RC2.tar.gz [root@test src]# cd jmcce-1.4RC2/ [root@test jmcce-1.4RC2]# LANG=zh_TW.Big5 [root@test jmcce-1.4RC2]# vi /etc/sysconfig/i18n # 可以将他改成中文显示喔!底下的模样修改 LANG="zh_TW.Big5" [root@test jmcce-1.4RC2]# vi genconf.sh # 找到这一行: bin_PATH="/usr/bin" # 将他改成: bin_PATH="/usr/local/bin" [root@test jmcce-1.4RC2]# ./genconf.sh ; ./genconf.sh # 这个动作要多做几次,不然老是有一些怪怪的错误讯息! # 最后还是会出现一个错误讯息,就是底下的样子: configure.in: 13: required file `build/ltconfig' not found # 不过这个讯息不会影响最后的编译结果,所以就不要管他了! [root@test jmcce-1.4RC2]# ./configure --prefix=/usr \ > --sysconfdir=/etc/chinese/jmcce [root@test jmcce-1.4RC2]# make && make install 3. 移除暂存中间档案,将新版套件安装回来! [root@test jmcce-1.4RC2]# cd /usr/local/src/autoconf-2.13/ && make uninstall [root@test autoconf-2.13]# cd /usr/local/src/automake-1.4/ && make uninstall [root@test automake-1.4]# cd /usr/local/src/libtool-1.4.2/ && make uninstall # 拿出原版光盘,安装 autoconf, automake 与 libtool 吧! |
jmcce
(程序依现行 locale 自动决定繁体模式)
jmcce -b (手动强迫以 BIG5码繁体中文操作) jmcce -g (手动强迫以 GB码简体中文操作) jmcce -d (仅显示中文而不加载任何中文输入法,繁体模式自动) CTRL-SPACE ===> 中英切换 CTRL-ALT-0-9 ===> 输入法选择 CTRL-ALT-1 ===> 仓颉输入法 CTRL-ALT-2 ===> 简易输入法 CTRL-ALT-3 ===> 注音输入法 (Linux/CXterm 传统「零壹注音输入法」) CTRL-ALT-4 ===> 慈安输入法 (方快科技关慈安先生提供,含三十万词汇快速输入) CTRL-ALT-5 ===> 行列输入法 CTRL-ALT-6 ===> 英快输入法 (方快科技提供,大幅改良的英汉输入法) CTRL-ALT-7 ===> 酷音输入法 (智能型注音输入) CTRL-ALT-8 ===> 日文拼音输入法 (轻松信息提供,可用拼音输入所有假名与三万汉字词汇) CTRL-ALT-9 ===> 无虾米输入法 (只要自备合法对照表即可加挂启动) CTRL-ALT-0 ===> 内码输入法 |
|
MTU |
EtherNet (一般的网络接口,这也是默认值) | 1500 |
PPPoE(ADSL用的) | 1492 |
Dial-up(modem) | 576 |
C:\WINDOWS>
ping
-f -l 1500 192.168.1.2
Pinging 192.168.1.2 with 1500 bytes of data: Packet needs
to be fragmented but DF set.
Ping statistics
for 192.168.1.2:
|
C:\WINDOWS>
ping -f -l 1464 192.168.1.2
Pinging 192.168.1.2 with 1464 bytes of data: Reply from 192.168.1.2:
bytes=1464 time=10ms TTL=128
Ping statistics
for 192.168.1.2:
|
[root@test
root]# ping -c 3 -M do -s 1472 192.168.1.2
PING 192.168.1.2 (192.168.1.2) from 192.168.1.13 : 1472(1500) bytes of data. 1480 bytes from 192.168.1.2: icmp_seq=0 ttl=255 time=2.408 msec 1480 bytes from 192.168.1.2: icmp_seq=1 ttl=255 time=2.392 msec 1480 bytes from 192.168.1.2: icmp_seq=2 ttl=255 time=2.440 msec --- 192.168.1.2 ping statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max/mdev = 2.392/2.413/2.440/0.044 ms [root@test root]# ping -c 3 -M do -s 1473 192.168.1.2 PING 192.168.1.2 (192.168.1.2) from 192.168.1.13 : 1473(1501) bytes of data. ping: sendto: Message too long ping: sendto: Message too long ping: sendto: Message too long --- 192.168.1.2
ping statistics ---
|
[root@test root]# ifconfig eth0 mtu 1500 |