Linux:Linux常用网络指令,linux指令


http://blog.csdn.net/pipisorry/article/details/72123888

网络参数设定使用的指令

  • ifconfig :查询、设定网络卡与 IP 网域等相关参数;
  • ifup, ifdown:这两个档案是 script,透过更简单的方式来启动网络接口;
  • route :查询、设定路由表 (route table)
  • ip :复合式的指令, 可以直接修改上述提到的功能;

手动/自动设定与启动/关闭 IP 参数: ifconfig, ifup, ifdown

ifconfig

ifconfig 主要是可以手动的启动、观察与修改网络接口的相关参数,可以修改的参数很多啊,包括 IP 参数以及 MTU 等等都可以修改,他的语法如下:

[root@www ~]# ifconfig {interface} {up|down}  <== 观察与启动接口
[root@www ~]# ifconfig interface {options}    <== 设定与修改接口
选项与参数:
interface:网络卡接口代号,包括 eth0, eth1, ppp0 等等
options  :可以接的参数,包括如下:
    up, down :启动 (up) 或关闭 (down) 该网络接口(不涉及任何参数)
    mtu      :可以设定不同的 MTU 数值,例如 mtu 1500 (单位为 byte)
    netmask  :就是子屏蔽网络;
    broadcast:就是广播地址啊!

各项数据

  • eth0:就是网络卡的代号,也有 lo 这个 loopback ;
  • HWaddr:就是网络卡的硬件地址,俗称的 MAC 是也;
  • inet addr:IPv4 的 IP 地址,后续的 Bcast, Mask 分别代表的是 Broadcast 与 netmask 喔!
  • inet6 addr:是 IPv6 的版本的 IP ,我们没有使用,所以略过;
  • MTU:就是第二章谈到的 MTU 啊!
  • RX:那一行代表的是网络由启动到目前为止的封包接收情况, packets 代表封包数、errors 代表封包发生错误的数量、 dropped 代表封包由于有问题而遭丢弃的数量等等
  • TX:与 RX 相反,为网络由启动到目前为止的传送情况;
  • collisions:代表封包碰撞的情况,如果发生太多次, 表示你的网络状况不太好;
  • txqueuelen:代表用来传输数据的缓冲区的储存长度;
  • RX bytes, TX bytes:总接收、发送字节总量

皮皮blog



网络侦错与观察指令

使用测试软件来追踪可能的错误原因,而很多的网络侦测指令其实在 Linux 里头已经都预设存在了,只要你好好的学一学基本的侦测指令。

两部主机两点沟通: ping

# ping [选项与参数] IP
选项与参数:
-c 数值:后面接的是执行 ping 的次数,例如 -c 5 ;
-n     :在输出数据时不进行 IP 与主机名的反查,直接使用 IP 输出(速度较快);
-s 数值:发送出去的 ICMP 封包大小,预设为 56bytes,不过你可以放大此一数值;
-t 数值:TTL 的数值,预设是 255,每经过一个节点就会少一;
-W 数值:等待响应对方主机的秒数。
-M [do|dont] :主要在侦测网络的 MTU 数值大小,两个常见的项目是:
   do  :代表传送一个 DF (Don't Fragment) 旗标,让封包不能重新拆包与打包;
   dont:代表不要传送 DF 旗标,表示封包可以在其他主机上拆包与打包

察看本机的网络联机与后门: netstat

# netstat -[rn]       <==与路由有关的参数
# netstat -[antulpc]  <==与网络接口有关的参数
选项与参数:
与路由 (route) 有关的参数说明:
-r  :列出路由表(route table),功能如同 route 这个指令;
-n  :不使用主机名与服务名称,使用 IP 与 port number ,如同 route -n 与网络接口有关的参数:
-a  :列出所有的联机状态,包括 tcp/udp/unix socket 等;
-t  :仅列出 TCP 封包的联机;
-u  :仅列出 UDP 封包的联机;
-l  :仅列出有在 Listen (监听) 的服务之网络状态;
-p  :列出 PID 与 Program 的檔名;
-c  :可以设定几秒钟后自动更新一次,例如 -c 5 每五秒更新一次网络状态的显示;
范例一:列出目前的路由表状态,且以 IP 及 port number 显示:

# netstat -rn
# 其实这个参数就跟 route -n 一模一样,这不是 netstat 的主要功能!
# 范例二:列出目前的所有网络联机状态,使用 IP 与 port number

# netstat -an
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address           Foreign Address         State      
tcp        0      0 127.0.0.1:5939          0.0.0.0:*               LISTEN

tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN

tcp 0 52 192.168.1.100:22 192.168.1.101:1937 ESTABLISHED

tcp 0 0 :::22 :::* LISTEN
...

网络联机状态的输出部分

  • Proto:该联机的封包协议,主要为 TCP/UDP 等封包;
  • Recv-Q:非由用户程序连接所复制而来的总 bytes 数;
  • Send-Q:由远程主机所传送而来,但不具有 ACK 标志的总 bytes 数, 意指主动联机 SYN 或其他标志的封包所占的 bytes 数;
  • Local Address:本地端的地址,可以是 IP (-n 参数存在时), 也可以是完整的主机名。使用的格式就是『 IP:port 』只是 IP 的格式有 IPv4 及 IPv6 的差异。
  • 如上所示,在 port 22 的接口中,使用的 :::22 就是针对 IPv6 的显示,事实上他就相同于 0.0.0.0:22 的意思。 至于 port 25 仅针对 lo 接口开放,意指 Internet 基本上是无法连接到我本机的 25 埠口啦!
  • Foreign Address:远程的主机 IP 与 port number
  • stat:状态栏,主要的状态含有:

    • ESTABLISED:已建立联机的状态;
    • SYN_SENT:发出主动联机 (SYN 标志) 的联机封包;
    • SYN_RECV:接收到一个要求联机的主动联机封包;
    • FIN_WAIT1:该插槽服务(socket)已中断,该联机正在断线当中;
    • FIN_WAIT2:该联机已挂断,但正在等待对方主机响应断线确认的封包;
    • TIME_WAIT:该联机已挂断,但 socket 还在网络上等待结束;
    • LISTEN:通常用在服务的监听 port !可使用『 -l 』参数查阅。

# 范例三:秀出目前已经启动的网络服务

# netstat -tulnp

# 范例四:观察本机上头所有的网络联机状态

[root@www ~]# netstat -atunp

列出在监听的网络服务:

# netstat -tunl
ctive Internet connections (only servers)
Proto Recv-Q Send-Q Local Address    Foreign Address    State
tcp        0      0 0.0.0.0:111      0.0.0.0:*          LISTEN
tcp        0      0 0.0.0.0:22       0.0.0.0:*          LISTEN
tcp        0      0 127.0.0.1:25     0.0.0.0:*          LISTEN
...
上面说明了我的主机至少有启动 port 111, 22, 25 等,而且观察各联机接口,可发现 25 为 TCP 埠口,但只针对 lo 内部循环测试网络提供服务,因特网是连不到该埠口的。至于 port 22 则有提供因特网的联机功能。

列出已联机的网络联机状态:

# netstat -tun
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address       Foreign Address     State
tcp        0     52 192.168.1.100:22    192.168.1.101:2162  ESTABLISHED

从上面的数据来看,我的本地端服务器 (Local Address, 192.168.1.100) 目前仅有一条已建立的联机,那就是与 192.168.1.101 那部主机连接的联机,并且联机方向是由对方连接到我主机的 port 22 来取用我服务器的服务吶!

删除已建立或在监听当中的联机:

如果想要将已经建立,或者是正在监听当中的网络服务关闭的话,最简单的方法当然就是找出该联机的 PID, 然后将他 kill 掉即可啊!

例如下面的范例:

# netstat -tunp
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address    Foreign Address     State       PID/P name
tcp        0     52 192.168.1.100:22 192.168.1.101:2162  ESTABLISHED 1342/0

如上面的范例,我们可以找出来该联机是由 sshd 这个程序来启用的,并且他的 PID 是 1342, 希望你不要心急的用 killall 这个指令,否则容易删错人 (因为你的主机里面可能会有多个 sshd 存在), 应该要使用 kill 这个指令!

# kill -9 1342

侦测主机名与 IP 对应: host, nslookup

...

皮皮blog



远程联机指令与实时通讯软件

终端机与 BBS 联机: telnet

FTP 联机软件: ftp, lftp

图形接口的实时通讯软件: pidgin (gaim 的延伸)

皮皮blog


文字接口网页浏览

文字接口下载器: wget

如果说 links 是在进行网页的『浏览』,那么 wget 就是在进行『网页数据的取得』。

我们知道可以使用 lftp 来下载数据,但如果想要用浏览器来下载呢?那就利用 wget 吧!

[root@www ~]# wget [option] [网址]
选项与参数:
若想要联机的网站有提供账号与密码的保护时,可以利用这两个参数来输入喔!
--http-user=usrname
--http-password=password
--quiet :不要显示 wget 在抓取数据时候的显示讯息
lz常用示例

wget linkurl -P /usr/local

封包撷取功能

文字接口封包撷取器: tcpdump

图形接口封包撷取器: wireshark

任意启动 TCP/UDP 封包的埠口联机: nc, netcat

皮皮blog



linux系统网络问题及解决

Destination Host Unreachable / No route to host

pika:~$ping 192.168.31.191
PING 192.168.31.191 (192.168.31.191) 56(84) bytes of data.
From 192.168.31.98 icmp_seq=1 Destination Host Unreachable
说明不在同一局域网内,虽然ip前3位相同!!!

换个wifi试试就可以了。

或者No route to host

解决方案是:关闭防火墙

service iptables stop

[常见的网络命令查看当前网络状态]

ubuntu wifi重新配置/ ubuntu重装无线网卡驱动

[Existing Linux Wireless drivers]

使用网线或者手机网连接上网,可能一点问题都没有, 但是如果想使用 wifi 连接上网可能会遇到问题,如无线网络被禁用,wifi 指示灯没亮,一连接隐藏的wifi或者某个wifi无线网卡就不能用了device not ready等等。

解决1:
在联网情况下,在命令行终端输入

sudo update-manager

调出软件更新器界面,然后单击界面上的设置…按钮,调出软件和更新界面,如图

切换到附加驱动选项卡,稍等片刻,正常情况下就会看到自己的无线网卡驱动了,可以看到我的无线网卡驱动是Broadcom BCM43142,使用该驱动并点击应用更改(A),然后就会发现自己的电脑能搜到无线信号了,如果还是搜不到无线信号,重启电脑试试。

如果在附加驱动选项卡中没看到无线网卡驱动,那如何安装无线驱动?在命令行终端输入如下命令:

sudo apt-get update
sudo apt-get install linux-headers-generic build-essential dkms
sudo apt-get install linux-source
sudo apt-get install --reinstall bcmwl-kernel-source
sudo modprobe wl
不知道这个方法是不是对绝大部分无线网卡驱动都支持。

解决2:

命令行: sudo apt-get install -y wicd (亲测无效)

解决3:

首先要查看本机的无线网卡型号

lspci -v

...

02:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 15)
    Subsystem: Lenovo RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller
    Flags: bus master, fast devsel, latency 0, IRQ 124
    I/O ports at 3000 [size=256]
    Memory at d1204000 (64-bit, non-prefetchable) [size=4K]
    Memory at d1200000 (64-bit, non-prefetchable) [size=16K]
    Capabilities: <access denied>
    Kernel driver in use: r8168
    Kernel modules: r8168

03:00.0 Network controller: Intel Corporation Intel Dual Band Wireless-AC 3165 Plus Bluetooth (rev 99)
    Subsystem: Intel Corporation Intel Dual Band Wireless-AC 3165 Plus Bluetooth
    Flags: bus master, fast devsel, latency 0, IRQ 129
    Memory at d1100000 (64-bit, non-prefetchable) [size=8K]
    Capabilities: <access denied>
    Kernel driver in use: iwlwifi
    Kernel modules: iwlwifi, wl

Network controller是无线网卡信息,且型号为Intel Corporation Intel Dual Band Wireless-AC 3165 Plus Bluetooth (rev 99).

或者通过调试看哪个网卡驱动坏了dmesg | grep iwl,再下载对应的驱动安装。

解决:先驱动下载:[https://wireless.wiki.kernel.org/en/users/Drivers/iwlwifi]

解压后运行# cp iwlwifi-*.ucode /lib/firmware

[https://wireless.wiki.kernel.org/en/users/Drivers/iwlwifi]

和下面方法是一样的:Intel AC-3160 Firmware Update fixes Bluetooth:[http://ubuntuforums.org/showthread.php?t=2214075][Intel AC-3160 Firmware Update fixes Bluetooth]

或者(lz未测试)通过tar文件安装驱动[Ubuntu 10.04 安装网卡驱动][Ubuntu 12.04 wireless networks : devices not ready (firmware missing)解决办法]

ps:

realtek网卡

sudo apt-get install r8168-dkms

[Realtek ethernet driver error ubuntu 16.04]

[Ubuntu 16.04无线网卡RTL8723BE频繁掉线及信号不足解决办法]

Broadcom网卡

sudo apt-get install b43-fwcutter firmware-b43-installer

[install-broadcom-b43-legacy-wireless-driver-in-ubuntu]

[Ubuntu 14.04 Broadcom B43网卡失效的解决办法(附解决过程) ]

浏览网页的速度很慢

刚开始连无线(有线同样适用)的时候上网速度很快,但是过了十几秒后就变得很慢,断开无线连接并重连,重连的瞬间很快,过会儿又很慢,如此反复。经查询得知是本地DNS解析出了点问题,解决办法如下

1) 命令行输入sudo apt-get install dnsmasq;
2) sudo vi /etc/dnsmasq.conf,找到 #resolv-file=,用resolv-file=/etc/resolv.dnsmasq.conf替换,确保你没有更改过/etc/resolv.conf文件,如果改过,恢复原状;
3) sudo cp /etc/resolv.conf /etc/resolv.dnsmasq.conf;
4) 修改网络连接的IPv4设置中的附加DNS服务器地址为127.0.0.1,具体步骤为: 点开编辑连接 > 编辑网络连接 > 修改DNS服务器地址并保存 > 重新启动dnsmasq,命令为sudo /etc/init.d/dnsmasq restart。

[安装Ubuntu 16.04出现的各种坑爹问题总结]

from: http://blog.csdn.net/pipisorry/article/details/72123888

ref: [鸟哥的Linux私房菜:服务器架设篇]


   
0
0
查看评论

相关内容