eth0rename
⑴ GRUB 的預設安裝位置為
GRUB 的預設安裝位置如下:
1、 永久更改ip
ifconfig eth0 新ip
然後編輯/etc/sysconfig/network-scripts/ifcfg-eth0,修改ip
2、從Linux上遠程顯示Windows桌面
安裝rdesktop包
3、 手動添加默認網關 以root用戶,
執行: route add default gw 網關的IP
想更改網關
? vi /etc/sysconfig/network-scripts/ifcfg-eth0 更改GATEWAY
? /etc/init.d/network restart
4、 查出22埠現在運行什麼程序
lsof -i :22
5、查看本機的IP,gateway, dns
IP:
以root用戶登錄,執行ifconfig。
其中eth0是第一塊網卡,lo是默認的設備
Gateway:
以root用戶登錄,
執行netstat -rn
以0.0.0.0開頭的一行的Gateway即為默認網關
也可以查看/etc/sysconfig/network文件,裡面有指定的地址!
DNS:
more /etc/reslov.conf
內容指定如下:
nameserver 202.206.32.1
nameserver 202.206.32.1
6、RH8.0命令行下輕松改變ping 的TTL值
#sysctl -w net.ipv4.ip_default_ttl=N (N=0~255),若N>255,則ttl=0
7、RH8.0命令行下輕松改變系統配置默認值
編輯/etc/sysctl.conf,
例如,將 net.ipv4.ip_forward = 0 變為 net.ipv4.ip_forward = 1
重啟後生效,用sysctl -a查看可知
8、mount區域網上其他windows機器共享出的目錄
mount -t smbfs -o username=guest,password=guest //machine/path /mnt/cdrom
9、允許|禁止root通過SSH登陸
修改sshd_config:PermitRootLogin no|yes
10、 讓root直接telnet登陸
編輯/etc/pam.d/login,去掉 auth required /lib/security/pam_securetty.so 這句話
11、 改變telnet的埠
/etc/services這個文件里可修改想要的埠號.重啟守護進程
12、終端模式有問題
export TERM=vt100
13、模仿超級終端
LINUX里什麼程序連接路由器和交換機(alstone) minicom
14、 ssh上來能不能不自動斷線
那是timetou的設置,修改TMOUT變數值
15、用什麼工具做入侵檢測
snort
16、Linux下檢測程序內存泄漏的工具
cchecker或是efence庫都可以
17、linux下如何監視所有通過本機網卡的數據
tcpmp iptraf
18、為什麼root執行好多命令都說command not found
一定是telnet上來的,然後su成root的,
修改su命令格式,應該是su - root 0025
關閉用戶的POP3許可權(tiansgx) 把POP3的埠關了就可以了。
在文件/etc/services中找到這一行 pop-3 110/tcp 把這一行前加個'#',把它注釋掉就可以了。
19、鎖定wu-ftp用戶目錄(wangla)
編輯ftpaccess文件 restricted-uid * 這一句很重要,限制了ftp用戶在自己的目錄里。
20、伺服器怎麼不讓telnet
伺服器上必須啟動telnet服務 && 伺服器的防火牆優先順序應該設為低
21、防止任何人使用su命令成為root
? vi /etc/pam.d/su
auth sufficient /lib/security/pam_rootok.so debug auth required /lib/security/pam_wheel.so group=wheel
? 在/etc/pam.d/su配置文件中定義了wheel組.
22、網卡激活了,卻上不了網,怎麼辦?
trace一下,看看到底是在那一塊被阻住的。
? Ping自己
? Ping網關
? Ping DNS
? trace DNS If All=ok then nslookup
Ping sina's address Tra sina' address 基本上就可以知道結果了
23、在redhat9下配samba,win2000能訪問,win98不能訪問?
如果是wind98必需修改注冊表:
HKEY_LOCAL_MACHINE/system/correntcontrolset/services/Vxd/VNETSUP下
建個D值:EnablePlainTextpasswd,鍵值1
24、如何得到網卡的MAC地址
arp -a | awk '{print $4}'
25、如何得到網卡的IP地址
ifconfig eth0 |awk '/inet addr/ {split($2,x,":");print x[2]}'
26、如何全面卸載Linux?如何刪除它的分區?
? 進入linux, 用fdisk刪除linux分區和swap區。
? 重新啟動,在dos下運行fdisk /mbr,恢復主引導記錄。
27、修改主機名
vi /etc/sysconfig/network,
修改HOSTNAME一行為HOSTNAME=主機名,重啟後也能生效
28、啟動環境設置
Ret Hat Linux啟動到文字界面(不啟動xwindow)
將/etc/inittab中 id:5:initdefault: 一行中的5改為3
29、redhat的自動升級更新問題
在找到補丁,6.1以後的版本帶有一個工具up2date,它能夠測定哪些rpm包需要升級,然後自動從redhat的站點下載並完成安裝。
升級除kernel外的rpm: up2date -u
升級包括kernel在內的rpm: up2date -u -f
30、windows下看linux分區的軟體
Paragon.Ext2FS.Anywhere.2.5.rar和explore2fs-1.00-pre4.zip
31、mount用法
fat32的分區
mount -o codepage=936,iocharset=cp936 /dev/hda7 /mnt/cdrom
ntfs的分區
mount -o iocharset=cp936 /dev/hda7 /mnt/cdrom
iso文件
mount -o loop /abc.iso /mnt/cdrom
軟盤
mount /dev/fd0 /mnt/floppy
USB快閃記憶體
mount /dev/sda1 /mnt/cdrom
所有/etc/fstab內容
mount -a 可以指定文件格式"-t 格式", 格式可以為vfat, ext2, ext3等.
32.a 刪除名為-a的文件
rm ./-a
rm -- -a 告訴rm這是最後一個選項,
參見getopt ls -i 列出inum,
然後用find . -inum inum_of_thisfile -exec rm '{}' ;
32.b 刪除名為a的文件
rm \a
32.c 刪除名字帶的/和『 '文件
這些字元是正常文件系統所不允許的字元,但可能在文件名中產生,
如unix下的NFS文件系統在Mac系統上使用
1.解決的方法,把NFS文件系統在掛到不過濾'/'字元的系統下刪除含特殊文件名的文件。
2.也可將錯誤文件名的目錄其它文件移走,ls -id 顯示含該文件目錄的inum,umount 文件系統, clri清除該目錄的inum,fsck,mount,check your lost+found,rename the file in it. 最好是通過WINDOWS FTP過去就可以刪除任何文件名的文件了!
⑵ eth0變成了rename2,怎麼回事
原因:
Linux distribution使用udev動態管理設備文件,並根據設備的信息對其進行持久化命名。udev會在系統引導的過程中識別網卡,將mac地址和網卡名稱對應起來記錄在udev的規則腳本中。而對於新的虛擬機,VMware會自動為虛擬機的網卡生成MAC地址,當克隆或者重裝虛擬機軟體時,由於使用的是以前系統虛擬硬碟的信息,而該系統中已經有eth0的信息,對於這個新的網卡,udev會自動將其命名為eth1(累加的原則),所以在系統啟動後,使用ifconfig看到的網卡名為eth1。
解決方法:
在fedora中,udev記錄網路規則的腳本為:/etc/udev/rules.d/70-persistent-net.rules
[user@localhost ~]$ vi /etc/udev/rules.d/70-persistent-net.rules
# This file was automatically generated by the /lib/udev/write_net_rules
# program run by the persistent-net-generator.rules rules file.
#
# You can modify it, as long as you keep each rule on a single line.
# PCI device 0x1022:0x2000 (pcnet32)
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:5a:6c:73", ATTR{type}=="1", KERNEL=="eth*", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="00:0c:29:a9:22:9d", ATTR{type}=="1", KERNEL=="eth*", NAME="eth1"
打開該文件,這時會發現,裡面有eth0,eth1兩個網卡的信息,但實際上ifconfig時只能發現eth1一個網卡的信息,這時因為eth0根本就不存在。
將其中eth0的信息刪掉,並將eth1信息中的設備名改為eth0,重啟系統,看到的網卡就是eth0了,或者刪掉其中所有的信息重啟系統udev會幫發現新的設備的。
⑶ redhat 7 怎麼重命名網卡
在CentOS7.x或RedHat7.x上,網卡命名規則變成了默認,既自動基於固件、拓撲結構和位置信息來確定。這樣一來雖然有好處,但也會影響操作,因為新的命名規則比之前的難以閱讀。如果想修改,可以按照如下方法:
1、系統安裝完後,網卡信息可能如下:
1:lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2:eno16777736: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_faststate UP qlen 1000
link/ether 00:0c:29:8b:e3:0f brdff:ff:ff:ff:ff:ff
inet 10.0.0.20/24 brd 10.0.0.255 scopeglobal eno16777736
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fe8b:e30f/64 scopelink
valid_lft forever preferred_lft forever
2、修改網卡配置文件,修改NAME為eth0,並將DEVICE行刪除
[root@test~]# cd /etc/sysconfig/network-scripts/
root@test~]# vim ifcfg-eno16777736
3、修改該配置文件名
[root@testnetwork-scripts]# mv ifcfg-eno16777736 ifcfg-eth0
[root@testnetwork-scripts]# cd
4、修改/etc/sysconfig/grub,添加net.ifnames=0 biosdevname=0
[root@test~]# vim /etc/sysconfig/grub
修改前內容:
GRUB_TIMEOUT=5
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
修改後內容:
GRUB_TIMEOUT=5
GRUB_DEFAULT=saved
GRUB_DISABLE_SUBMENU=true
GRUB_TERMINAL_OUTPUT="console"
GRUB_CMDLINE_LINUX="crashkernel=auto net.ifnames=0 biosdevname=0 rhgb quiet"
GRUB_DISABLE_RECOVERY="true"
5、重新生成grub配置並更新內核參數
[root@test~]# grub2-mkconfig -o /boot/grub2/grub.cfg
此時重啟並查看即可發現已經修改成功。
6、創建規則
當有多個網卡,並且想要控制器設備名,而不是讓內核以自己的方式命名,需要修改下規則。
[root@test~]# vim/etc/udev/rules.d/70-persistent-ipoib.rules
SUBSYSTEM=="net",ACTION=="add",DRIVERS=="?*",ATTR(address)=="00:0c:29:8b:e3:0f",ATTR(type)=="1",
KERNEL=="eth*",NAME="eth0"
重啟系統即可。
⑷ redhat 萬兆和千兆的網卡命名問題
新弄了一批機器,為了准備切換到萬兆環境,給機器配了雙千兆和雙萬兆混合的4介面網卡,然後就出了一點問題
centos 7 引入了網路一致化命名規則,具體可以看紅帽的聯網指南
主要部分摘抄如下
------------引用專用分割線----------------------------
8.1. 命名方案層級結構
默認情況下,systemd 會使用以下策略,採用支持的命名方案為介面命名:
方案 1: 如果固件或 BIOS 信息適用且可用,則使用整合了為板載設備提供索引號的固件或 BIOS 的名稱(例如:eno1),否則請使用方案 2。
方案 2: 如果固件或 BIOS 信息適用且可用,則使用整合了為 PCI 快速熱插拔插槽提供索引號的固件或 BIOS 名稱(例如 ens1),否則請使用方案 3。
方案 3: 如果硬體連接器物理位置信息可用,則使用整合了該信息的名稱(例如:enp2s0),否則請使用方案 5。
方案 4: 默認不使用整合介面 MAC 地址的名稱(例如:enx78e7d1ea46da),但用戶可選擇使用此方案。
方案 5: 傳統的不可預測的內核命名方案,在其他方法均失敗後使用(例如: eth0)。
這個策略(如上所述)是默認策略。如果該系統已啟用 biosdevname ,則會使用該方案。註:啟用 biosdevname 需要添加 biosdevname=1 作為命令行參數(Dell 系統除外),此時只要安裝 biosdevname ,就會默認使用該方案。如果用戶已添加 udev 規則,該規則會更高內核設備名稱,則會優先使用這些規則。
設備命名過程如下:
/usr/lib/udev/rules.d/60-net.rules 文件中的規則會讓 udev 幫助工具 /lib/udev/rename_device 查看所有 /etc/sysconfig/network-scripts/ifcfg- suffix 文件。如果發現包含 HWADDR 條目的 ifcfg 文件與某個介面的 MAC 地址匹配,它會將該介面重命名為 ifcfg 文件中由 DEVICE 指令給出的名稱。
/usr/lib/udev/rules.d/71-biosdevname.rules 中的規則讓 biosdevname 根據其命名策略重命名該介面,即在上一步中沒有重命名該介面、已安裝 biosdevname 、且在 boot 命令行中將 biosdevname=0 作為內核命令給出。
/lib/udev/rules.d/75-net-description.rules 中的規則讓 udev 通過檢查網路介面設備,填寫內部 udev 設備屬性值 ID_NET_NAME_ONBOARD、ID_NET_NAME_SLOT、ID_NET_NAME_PATH。註:有些設備屬性可能處於未定義狀態。
/usr/lib/udev/rules.d/80-net-name-slot.rules 中的規則讓 udev 重命名該介面,優先順序如下:ID_NET_NAME_ONBOARD、ID_NET_NAME_SLOT、ID_NET_NAME_PATH。並提供如下信息:沒有在步驟 1 或 2 中重命名該介面,同時未給出內核參數 net.ifnames=0。如果一個參數未設定,則會按列表的順序設定下一個。如果沒有設定任何參數,則不會重命名該介面。
-----------以上是紅帽的聯網指南-------
其實簡述上面的信息就是首先看內核參數是否啟用了biosdevname=1 (默認是啟用),如果bios提供了設備的名稱就使用bios提供的名稱
如果沒有,就根據網卡配置中 device=eth,em,xyz 的名字來命名這個網卡,但是如果這樣命名的話,必須在配置里寫死網卡的mac地址
作為網卡的識別標志,對單網卡當然沒什麼問題,但是如果在集群環境里,HA,以及bonding環境里,為了快速切換網路流量,往往要屏蔽mac,
使用虛擬mac,或者多塊網卡使用一個mac地址,這個時候需要在配置文件里屏蔽mac地址,因此就需要區改udev的配置文件來解決
我所遇到的問題是,使用了biosdevname=0和 net.ifnames=0 參數後,(因為以前有大量的centos6的機器,為了移植方便,不使用一致性命名規則,網卡名依然是eth0,eth1.。。。)安裝伺服器時一切正常,但啟動系統後,發現系統將插在第一個埠的網卡認為是eth2,和預期不符,本能的認為udev可以解決問題,於是添加了udev的規則
```
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="24:6e:96:ac:a1:xa", ATTR{type}=="1", KERNEL=="*", NAME="eth0"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="24:6e:96:ac:a1:xb", ATTR{type}=="1", KERNEL=="*", NAME="eth1"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="24:6e:96:ac:a1:xc", ATTR{type}=="1", KERNEL=="*", NAME="eth2"
SUBSYSTEM=="net", ACTION=="add", DRIVERS=="?*", ATTR{address}=="24:6e:96:ac:a1:xd", ATTR{type}=="1", KERNEL=="*", NAME="eth3"
```
發現不起作用,,難道寫錯了?換個規則,用pci設備號去綁定
SUBSYSTEM=="net", ACTION=="add", KERNEL=="eth*", SUBSYSTEM=="pci", KERNELS===="0000:01:00.0", NAME="eth0"
依然沒用
用下面的命令debug一下
udevadm test /sys/class/net/eth0
結果縮略如下
rules contain 49152 bytes tokens (4096 * 12 bytes), 13451 bytes strings
2076 strings (25677 bytes), 1399 de-plicated (12904 bytes), 678 trie nodes used
NAME 'eth2' /etc/udev/rules.d/60-net.rules:6
IMPORT builtin 'net_id' /usr/lib/udev/rules.d/75-net-description.rules:6
IMPORT builtin 'hwdb' /usr/lib/udev/rules.d/75-net-description.rules:12
IMPORT builtin 'path_id' /usr/lib/udev/rules.d/80-net-setup-link.rules:5
IMPORT builtin 'net_setup_link' /usr/lib/udev/rules.d/80-net-setup-link.rules:9
No matching link configuration found.
RUN '/usr/lib/systemd/systemd-sysctl --prefix=/net/ipv4/conf/$name --prefix=/net/ipv4/neigh/$name --prefix=/net/ipv6/conf/$name --prefix=/net/ipv6/neigh/$name' /usr/lib/udev/rules.d/99-systemd.rules:55
Error changing net interface name 'eth0' to 'eth2': File exists
could not rename interface '2' from 'eth0' to 'eth2': File exists
created db file '/run/udev/data/n2' for '/devices/pci0000:00/0000:00:1c.4/0000:06:00.0/net/eth0'
ACTION=add
DEVPATH=/devices/pci0000:00/0000:00:1c.4/0000:06:00.0/net/eth0
ID_BUS=pci
ID_MODEL_FROM_DATABASE=I350 Gigabit Network Connection (Gigabit 4P X540/I350 rNDC)
粗體看到原來是設備已經存在,無法重命名,於是想到的重新載入驅動
modprobe -rv igb
modprobe -rv ixgbe
然後按順序載入驅動
modprobe ixgbe
modprobe igb
終於可以看到效果了,不過重啟就完蛋了
於是想是否可以調整驅動載入順序?
找了半天文檔,發現可以通過重新打包內核啟動文件和編譯內核兩條路實現,不過這顯然又增加了很多麻煩,總不能升級一次內核,就重新打一次包吧
看看其他方法。最好發現簡單的方法就是修改啟動內核的參數 將 biosdevname=0和net.ifnames=0 改為 biosdevname=0和net.ifnames=1 ,這樣系統啟動時,會按照上述一致性命名規則,重新命名網卡,可以預期的是,已dell板載網卡為例,網卡會依次命名為eno1,eno4,等等,然後再載入udev規則,按照udev規則,再次重新命名為我們期望的eth0,eth1,等等
當然配置文件可以用ansible搞定,我這里的模版內容就是
ifcfg-eth0.j2
------
NAME="eth0"
DEVICE="eth0"
ONBOOT=yes
HWADDR="{{ hostvars[inventory_hostname].ansible_eth1.macaddress }}"
NETBOOT=yes
IPV6INIT=no
BOOTPROTO=static
TYPE=Ethernet
----------
這樣udev 規則就生效了,其實就是啟動過程中,當上述兩個參數全為0時,網路設備只能叫ethx,先載入的驅動搶佔了eth0和eth1時,(我這里是千兆的設備驅動 igb先啟動)後起的設備想按udev規則rname時,發現eth0,和eth1 已經被占據了,因此命名失敗,所以深入理解啟動順序和動作其實還是蠻重要的
參考鏈接 https://access.redhat.com/documentation/zh-cn/red_hat_enterprise_linux/7/html/networking_guide/sec-understanding_the_device_renaming_procere
紅帽知識庫文章引用如下