ifconfigethdown
⑴ linux指令---ifconfig eth0 down,要如何解釋
eth0是指你的一塊網卡或者第一塊網卡,down停止的意思 ifconfig是列出網路信息的意思
這個命令是 禁用etho網卡 的意思
⑵ linux嵌入式系統下編程修改ip mac地址,c語言程序,具體操作類似 ifconfig eth down ifconfig eth0 Up
#include <stdlib.h>int system(const char *string);例:在~/myprogram/目錄下有shell腳本test.sh,內容為#!bin/bash#test.shecho $HOME在該目錄下新建一個c文件systemtest.c,內容為:#include<stdlib.h>main(){
system("~/myprogram/test.sh");}執行結果如下:xiakeyou@ubuntu:~/myprogram$ gcc systemtest.c -o
systemtestxiakeyou@ubuntu:~/myprogram$ ./systemtest/home/d/e/xiakeyouxiakeyou@ubuntu:~/myprogram$2)popen(char *command,char *type)執行過程:popen()會調用fork()產生子進程,然後從子進程中調用/bin/sh
-c來執行參數command的指令。參數
type可使用「r」代表讀取,「w」代表寫入。依照此type值,popen()會建立管道連到子進程的標准輸出設備或標准輸入設備,然後返回一個文件
指針。隨後進程便可利用此文件指針來讀取子進程的輸出設備或是寫入到子進程的標准輸入設備中。此外,所有使用文件指針(FILE*)操作的函數也都可以使
用,除了fclose()以外。返回值:若成功則返迴文件指針,否則返回NULL,錯誤原因存於errno中。
注意:在編寫具SUID/SGID許可權的程序時請盡量避免使用popen(),popen()會繼承環境變數,通過環境變數可能會造成系統安全的問題。例:C程序popentest.c內容如下:#include<stdio.h>main(){FILE * fp;charbuffer[80];fp=popen(「~/myprogram/test.sh」,」r」);fgets(buffer,sizeof(buffer),fp);printf(「%s」,buffer);pclose(fp);}執行結果如下:xiakeyou@ubuntu:~/myprogram$ vim popentest.cxiakeyou@ubuntu:~/myprogram$ gcc popentest.c -o popentestxiakeyou@ubuntu:~/myprogram$ ./popentest/home/d/e/xiakeyouxiakeyou@ubuntu:~/myprogram$
只是偶能力可能有點有限,沒有太看懂。直接用system()倒是腳本可是執行,只是返回值卻是一塌糊塗,試了多次也沒有找到什麼規律。不免又看了一下上面的那篇博文,得到一些啟發,可以這樣來實現:先將腳本的返回值利用 echo > XXXXX 輸出到一個本地文件中當需要這個返回值是,可是通過C語言的文件操作函數來直接從文件中讀取後來一想,這應該就是上文中POPEN的實現方法!C程序調用shell腳本共有三種法子 :system()、popen()、exec系列函數 system()
不用你自己去產生進程,它已經封裝了,直接加入自己的命令exec 需要你自己 fork 進程,然後exec 自己的命令popen() 也可以實現執行你的命令,比system 開銷小1)system(shell命令或shell腳本路徑);system()會調用fork()產生 子歷程,由子歷程來調用/bin/sh-c string來履行
參數string字元串所代表的命令,此命令履行 完後隨即返回原調用的歷程。在調用system()期間SIGCHLD
信號會被暫時擱置,SIGINT和SIGQUIT 信號則會被漠視 。
返回值:如果system()在調用/bin/sh時失敗則返回127,其他失敗原因返回-1。若參數string為空指針(NULL),則返回非零值。
如果 system()調用成功 則最後會返回履行
shell命令後的返回值,但是此返回值也有可能為system()調用/bin/sh失敗所返回的127,因 此最好能再反省 errno
來確認履行 成功 。system命令以其簡略 高效的作用得到很很廣泛 的利用 ,下面是一個例子例:在~/test/目錄下有shell腳本test.sh,內容為#!bin/bash#test.shecho hello在同層目錄下新建一個c文件system_test.c,內容為:#include<stdlib.h>int main(){system("~/test/test.sh");}履行 效果 如下:[root@localhost test]$gcc system_test.c -o system_test[root@localhost test]$./system_testhello[root@localhost test]$2)popen(char *command,char *type)popen()會調用fork()產生 子歷程,然後從子歷程中調用/bin/sh -c來履行
參數command的指令。參數type可應用 「r」代表讀取,「w」代表寫入。遵循此type值,popen()會建立
管道連到子歷程的標准 輸出設備 或標准 輸入設備 ,然後返回一個文件指針。隨後歷程便可利用 此文件指針來讀取子歷程的輸出設備
或是寫入到子歷程的標准 輸入設備 中。此外,所有應用 文 件指針(FILE*)操作的函數也都可以應用
,除了fclose()以外。返回值:若成功 則返迴文件指針,否則返回NULL,差錯
原因存於errno中。注意:在編寫具SUID/SGID許可權的程序時請盡量避免應用popen(),popen()會繼承環境變數,通過環境變數可能會造成系統安全的問題。例:C程序popentest.c內容如下:#include<stdio.h>main{FILE * fp;charbuffer[80];fp=popen(「~/myprogram/test.sh」,」r」);fgets(buffer,sizeof(buffer),fp);printf(「%s」,buffer);pclose(fp);}履行 效果 如下:[root@localhost test]$ vim popentest.c[root@localhost test]$ gcc popentest.c -o popentest[root@localhost test]$ ./popentest/root/test[root@localhost test]$
⑶ Linux中要禁用網卡是:ifconfig eth0 down,那我使用:ifconfig ip地址 down可以嗎
不可以,ifconfig
後面必須加網卡名。你可以用ifdown
etho來禁用網卡eth0,如果你的機器只有一塊網卡的,你還可以使用service
network
stop來禁掉網卡!如果是redhat
linux的話,你還可以通過system-config-network把激活的eht0禁用。
⑷ Linux中要禁用網卡是:ifconfig eth0 down,那我使用:ifconfig ip地址 down可以嗎
不可以,ifconfig 後面必須加網卡名。你可以用ifdown etho來禁用網卡eth0,如果你的機器只有一塊網卡的,你還可以使用service network stop來禁掉網卡!如果是redhat linux的話,你還可以通過system-config-network把激活的eht0禁用。
⑸ 關於Linux網卡信息,為什麼用ifconfig -a查看有eth0 和eth1 進入網卡文件里只看到ifcfg-eth0
If no arguments are given, ifconfig displays the status of the currently active interfaces. If a
single interface argument is given, it displays the status of the given interface only; if a single
-a argument is given, it displays the status of all interfaces, even those that are down. Other- wise, it configures an interface
如果沒有給出參數,ifconfig顯示當前活動的狀態的介面。如果一個介面參數是給定的,它顯示給定的介面的狀態只有;如果一個—a 給出參數,它會顯示所有介面的狀態,甚至那些下來。其他-明智,它配置一個介面
⑹ 我在Linux下用ifconfig命令配置ip地址出現了問題!!
首先確認設備標記是否發生變更
嘗試執行:
iplink show
嵌入式系統執行:
busybox iplink show
看反饋中對應得設備標記是否發生變更(比如可能變為eth1或者其他)
⑺ ifconfig 怎麼配置ip
Linux下網卡命名規律:eth0,eth1。第一塊乙太網卡,第二塊。
lo為環回介面,它的IP地址固定為127.0.0.1,掩碼8位。它代表你的機器本身。
Java代碼
ifconfig [Interface] www.2cto.com
是查看網卡的信息 ,如果不加參數查看的是所有的網卡信息
加上參數eth0的話是查看eth0網卡的信息
網卡信息的一些解釋:
第一行:連接類型:Ethernet(乙太網)HWaddr(硬體mac地址)
第二三行:網卡的IP地址、子網、掩碼
第四行:UP(代表網卡開啟狀態)RUNNING(代表網卡的網線被接上)MULTICAST(支持組播)
MTU:1500(最大傳輸單元):1500位元組 www.2cto.com
下面就是接收、發送數據包情況統計和發送接受數據位元組數的統計信息。
配置網卡的IP地址
Java代碼
ifconfig eth0 192.168.168.64 netmask 255.255.255.0
在eth0上配置上192.168.168.64 的IP地址及子網掩碼。
配置網卡的硬體地址
Java代碼
ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx
禁用網卡eth0
Java代碼
ifconfig eth0 down
www.2cto.com
啟用網卡eth0
Java代碼
ifconfig eth0 up
另外啟動和禁用網卡還可以使用ifup | ifdown eth0
⑻ ifconfig配置ip
一、ifconfig與IP
1、ifconfig添加或修改原IP
ifconfig eth0 192.168.10.199 或
ifconfig eth0 192.168.10.199 netmask 255.255.255.0 up
ifconfig eth0:1 192.168.10.198 netmask 255.255.255.0 up
註:以上兩台效果是一樣的,上面一種寫法是下面一種寫法的減縮版。如果eth0上之前已經配置這IP,該配置會將原來的IP清掉,換成上面配置的IP,但在遠程ssh時最好不要使用該方法,因為網路環境不同。一旦更改不生效,就要跑到機房再進行配置。
2、禁用啟用網卡
ifconfig eth0 down
ifconfig eth0 up
該用法,是不是和ifup eth0、ifdown eth0:1很像?
註:當一塊網卡上配置多個IP時,如eth0、eth0:1時,如果禁掉eth0:1時,eth0上的網卡配置依然生效。但禁掉直接物理網卡口時(即eth0)時,其後面配置的IP (eth0:1等)都將被刪除掉。另外,ifconfig 還可以用於設置mtu和設置網卡的混雜模式:
ifconfig eth0 mtu 1472
利用netstat -i查看
將eth0設置成混雜模式
ifconfig eth0 promisc
取消混雜
ifconfig eth0 -promisc
3、修改網卡mac地址:
ifconfig eth0 hw ether xx:xx:xx:xx:xx:xx
ifconfig查看的信息里,經常被我們忽視的第三行非常有用,如在沒有mii-tool工具時,可以通過其查看網卡連接狀態。
UP(代表網卡開啟狀態)RUNNING(代表網卡的網線被接上)MULTICAST(支持組播)MTU:1500(最大傳輸單元):1500位元組
二、ip命令與IP
ip是iproute2軟體包裡面的一個強大的網路配置工具,它能夠替代一些傳統的網路管理工具,例如ifconfig、route等,使用許可權為超級用戶。
1、ip命令添加一個IP地址:
[root@localhost ~]# ip addr add 192.168.10.198/24 dev eth0:1
[root@localhost ~]# ip addr add 192.168.10.199/24 dev eth0
[root@localhost ~]# ip -f inet addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
inet 192.168.10.26/24 brd 192.168.10.255 scope global eth0
inet 192.168.10.198/24 scope global secondary eth0
inet 192.168.10.199/24 scope global secondary eth0
[root@localhost ~]# ip addr add 192.168.10.200/24 dev eth0:3
[root@localhost ~]# ip -f inet addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
inet 127.0.0.1/8 scope host lo
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
inet 192.168.10.26/24 brd 192.168.10.255 scope global eth0
inet 192.168.10.198/24 scope global secondary eth0
inet 192.168.10.199/24 scope global secondary eth0
inet 192.168.10.200/24 scope global secondary eth0
當然,上面的增加地址的寫法,我們也可以使用以下兩種方式增加,不過由於沒有上面的寫法容易記,我平時很少會用下面的方式增加:
ip addr add local 192.168.4.1/28 brd + label eth0:1 dev eth0
ip addr add 192.168.4.2/24 brd + dev eth1 label eth1:1
由上面的操作命令不難看出,隨便我們怎麼去添加IP,後面的設備名無論是eth0、eth0:1、eth0:100也好,其都不會將原網卡上綁定的地址給清掉。其通過ip addr show 顯示的出的結果都是secondary eth0 。
註:ip addr命令增加的IP ,不能通過ifconfig查看到,也不能通過ifconfig eth0:1 down 或ifdown eth0:1 這樣的方式停掉。
2、ip命令刪除一個IP
[root@localhost ~]# ip addr del 192.168.10.200
Not enough information: "dev" argument is required.
[root@localhost ~]# ip addr del 192.168.10.200 dev eth0
Warning: Executing wildcard deletion to stay compatible with old scripts.
Explicitly specify the prefix length (192.168.10.200/32) to avoid this warning.
This special behaviour is likely to disappear in further releases,
fix your scripts!
[root@localhost ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast qlen 1000
link/ether 40:61:86:98:95:05 brd ff:ff:ff:ff:ff:ff
inet 192.168.10.26/24 brd 192.168.10.255 scope global eth0
inet 192.168.10.198/24 scope global secondary eth0
inet 192.168.10.199/24 scope global secondary eth0
inet6 fe80::4261:86ff:fe98:9505/64 scope link
valid_lft forever preferred_lft forever
3: sit0: <NOARP> mtu 1480 qdisc noop
link/sit 0.0.0.0 brd 0.0.0.0
[root@localhost ~]# ip addr del 192.168.10.199/24 dev eth0
在不加掩碼刪除時,其會提示警告,但還是可以將其地址刪掉。ip命令的用法比較多,就不一一列舉了。
三、路由配置
增加路由
route add -net 192.168.6.0/24 gw 192.168.101.254
route add default gw 192.168.101.254
查看路由
ip route list
route –n
netstat –r
四、總結
以上的ifconfig和ip命令配置的信息,重啟都會清除,想要永久生效,還是配置相關的配置文件。不過掌握命令配置方法很重要,在LVS+keepalive等架構上,浮動IP的變動,很多都是通過ip命令來完成的。
⑼ Linux中ifconfig命令作用有哪些
linux中ifconfig命令屬於網路配置命令
ifconfig命令被用於配置和顯示Linux內核中網路介面的網路參數。用ifconfig命令配置的網卡信息,在網卡重啟後機器重啟後,配置就不存在。要想將上述的配置信息永遠的存的電腦里,那就要修改網卡的配置文件了。
語法
ifconfig(參數)
參數
add<地址>:設置網路設備IPv6的ip地址;
del<地址>:刪除網路設備IPv6的IP地址;
down:關閉指定的網路設備;
<hw<網路設備類型><硬體地址>:設置網路設備的類型與硬體地址;
io_addr<I/O地址>:設置網路設備的I/O地址;
irq<IRQ地址>:設置網路設備的IRQ;
media<網路媒介類型>:設置網路設備的媒介類型;
mem_start<內存地址>:設置網路設備在主內存所佔用的起始地址;
metric<數目>:指定在計算數據包的轉送次數時,所要加上的數目;
mtu<位元組>:設置網路設備的MTU;
netmask<子網掩碼>:設置網路設備的子網掩碼;
tunnel<地址>:建立IPv4與IPv6之間的隧道通信地址;
up:啟動指定的網路設備;
-broadcast<地址>:將要送往指定地址的數據包當成廣播數據包來處理;
-pointopoint<地址>:與指定地址的網路設備建立直接連線,此模式具有保密功能;
-promisc:關閉或啟動指定網路設備的promiscuous模式;
IP地址:指定網路設備的IP地址;
網路設備:指定網路設備的名稱。
使用功能示例
啟動關閉指定網卡:
ifconfig eth0 up
ifconfig eth0 down
ifconfig eth0 up為啟動網卡eth0,ifconfig eth0 down為關閉網卡eth0。ssh登陸linux伺服器操作要小心,關閉了就不能開啟了,除非你有多網卡。
為網卡配置和刪除IPv6地址:
ifconfig eth0 add 33ffe:3240:800:1005::2/64 #為網卡eth0配置IPv6地址
ifconfig eth0 del 33ffe:3240:800:1005::2/64 #為網卡eth0刪除IPv6地址
用ifconfig修改MAC地址:
ifconfig eth0 hw ether 00:AA:BB:CC:dd:EE
配置IP地址:
[root@localhost ~]# ifconfig eth0 192.168.2.10
[root@localhost ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0
[root@localhost ~]# ifconfig eth0 192.168.2.10 netmask 255.255.255.0 broadcast 192.168.2.255
啟用和關閉arp協議:
ifconfig eth0 arp #開啟網卡eth0 的arp協議
ifconfig eth0 -arp #關閉網卡eth0 的arp協議
設置最大傳輸單元:
ifconfig eth0 mtu 1500 #設置能通過的最大數據包大小為 1500 bytes