一洞慎、配置網(wǎng)絡(luò)服務(wù)
1.配置網(wǎng)絡(luò)參數(shù)
(1)使用nmtui命令配置網(wǎng)絡(luò)參數(shù)
(2)使用vim編輯ifcfg-eno16777728配置文件幢竹,設(shè)置ONBOOT=yes
# vim /etc/sysconfig/network-scripts/ifcfg-eno16777728
TYPE=Ethernet
BOOTPROTO=none
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
NAME=eno16777728
UUID=dc9bf613-4d3d-4883-8be8-8282582b6fc3
ONBOOT=yes
GATEWAY0=192.168.31.1
HWADDR=00:0C:29:64:8B:37
PROXY_METHOD=none
BROWSER_ONLY=no
IPADDR=192.168.1.145
PREFIX=24
GATEWAY=192.168.1.1
# systemctl restart network
# ping -c 4 192.168.1.145
PING 192.168.1.145 (192.168.1.145) 56(84) bytes of data.
64 bytes from 192.168.1.145: icmp_seq=1 ttl=64 time=0.295 ms
64 bytes from 192.168.1.145: icmp_seq=2 ttl=64 time=0.111 ms
64 bytes from 192.168.1.145: icmp_seq=3 ttl=64 time=0.107 ms
64 bytes from 192.168.1.145: icmp_seq=4 ttl=64 time=0.107 ms
--- 192.168.1.145 ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 0.107/0.155/0.295/0.080 ms
2.創(chuàng)建網(wǎng)絡(luò)會話
RHEL 和 CentOS 系統(tǒng)默認(rèn)使用 NetworkManager 來提供網(wǎng)絡(luò)服務(wù)箫锤,這是一種動態(tài)管理網(wǎng)絡(luò)配置的守護進程琴许,能夠讓網(wǎng)絡(luò)設(shè)備保持連接狀態(tài)辈赋。可以使用 nmcli 命令來管理 NetworkManager 服務(wù)棠枉。nmcli 是一款基于命令行的網(wǎng)絡(luò)配置工具晕粪,功能豐富讹俊,參數(shù)眾多垦沉。它可以輕松地查看網(wǎng)絡(luò)信息或網(wǎng)絡(luò)狀態(tài):
# nmcli connection show
NAME? ? ? ? UUID? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TYPE? ? ?DEVICE? ? ?
eno16777728? dc9bf613-4d3d-4883-8be8-8282582b6fc3? ethernet eno16777728
virbr0? ? ? 212a6f0b-0909-497a-aa69-79ca1c3043bb? bridge? ?virbr0
# nmcli con show eno16777728
connection.id:? ? ? ? ? ? ? ? ? ? ? ? ? eno16777728
connection.uuid:? ? ? ? ? ? ? ? ? ? ? ? dc9bf613-4d3d-4883-8be8-
8282582b6fc3
connection.stable-id:? ? ? ? ? ? ? ? ? --
connection.type:? ? ? ? ? ? ? ? ? ? ? ? 802-3-ethernet
connection.interface-name:? ? ? ? ? ? ? --
connection.autoconnect:? ? ? ? ? ? ? ? yes
connection.autoconnect-priority:? ? ? ? 0
connection.autoconnect-retries:? ? ? ? -1 (default)
connection.auth-retries:? ? ? ? ? ? ? ? -1
connection.timestamp:? ? ? ? ? ? ? ? ? 1564968668
connection.read-only:? ? ? ? ? ? ? ? ? no
connection.permissions:? ? ? ? ? ? ? ? --
connection.zone:? ? ? ? ? ? ? ? ? ? ? ? --
connection.master:? ? ? ? ? ? ? ? ? ? ? --
connection.slave-type:? ? ? ? ? ? ? ? ? --
connection.autoconnect-slaves:? ? ? ? ? -1 (default)
connection.secondaries:? ? ? ? ? ? ? ? --
connection.gateway-ping-timeout:? ? ? ? 0
connection.metered:? ? ? ? ? ? ? ? ? ? unknown
connection.lldp:? ? ? ? ? ? ? ? ? ? ? ? default
connection.mdns:? ? ? ? ? ? ? ? ? ? ? ? -1 (default)
802-3-ethernet.port:? ? ? ? ? ? ? ? ? ? --
802-3-ethernet.speed:? ? ? ? ? ? ? ? ? 0
802-3-ethernet.duplex:? ? ? ? ? ? ? ? ? --
802-3-ethernet.auto-negotiate:? ? ? ? ? no
802-3-ethernet.mac-address:? ? ? ? ? ? 00:0C:29:64:8B:37
802-3-ethernet.cloned-mac-address:? ? ? --
另外,RHEL7 系統(tǒng)支持網(wǎng)絡(luò)會話功能劣像,允許用戶在多個配置文件中快速切換(非常類似于 firewalld 防火墻服務(wù)中的區(qū)域技術(shù)) 乡话。 如果我們在公司網(wǎng)絡(luò)中使用筆記本電腦時需要手動指定網(wǎng)絡(luò)的 IP 地址,而回到家中則是使用 DHCP 自動分配 IP 地址耳奕。這就需要麻煩地頻繁修改IP 地址绑青,但是使用了網(wǎng)絡(luò)會話功能后一切就簡單多了 — 只需在不同的使用環(huán)境中激活相應(yīng)的網(wǎng)絡(luò)會話,就可以實現(xiàn)網(wǎng)絡(luò)配置信息的自動切換了屋群。
可以使用 nmcli 命令并按照“connection add con-name type ifname”的格式來創(chuàng)建網(wǎng)絡(luò)會話闸婴。假設(shè)將公司網(wǎng)絡(luò)中的網(wǎng)絡(luò)會話稱之為 company,將家庭網(wǎng)絡(luò)中的網(wǎng)絡(luò)會話稱之為 house芍躏,現(xiàn)在依次創(chuàng)建各自的網(wǎng)絡(luò)會話邪乍。使用 con-name 參數(shù)指定公司所使用的網(wǎng)絡(luò)會話名稱 company,然后依次用 ifname 參數(shù)指定本機的網(wǎng)卡名稱(千萬要以實際環(huán)境為準(zhǔn)对竣,不要照抄書上的 eno16777728) 庇楞,用autoconnect no 參數(shù)設(shè)置該網(wǎng)絡(luò)會話默認(rèn)不被自動激活,以及用 ip4 及 gw4 參數(shù)手動指定網(wǎng)絡(luò)的 IP 地址:
# nmcli connection add con-name company ifname eno16777728 autoconnect no type ethernet ip4 192.168.1.145/24 gw4 192.168.1.1
Connection 'company' (c7c3bb65-ef25-4152-a842-e1a16728c17b)
successfully added.
使用 con-name 參數(shù)指定家庭所使用的網(wǎng)絡(luò)會話名稱 house否纬。因為我們想從外部 DHCP 服務(wù)器自動獲得 IP 地址吕晌,因此這里不需要進行手動指定。
# nmcli connection add con-name house type ethernet ifname eno16777728
Connection 'house' (2b89f9fd-ae29-43f9-9411-e46ac0fb19e4)
successfully added.
# nmcli connection show
NAME? ? ? ? UUID? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? TYPE? ? ?DEVICE? ? ?
eno16777728? dc9bf613-4d3d-4883-8be8-8282582b6fc3? ethernet eno16777728
virbr0? ? ? 212a6f0b-0909-497a-aa69-79ca1c3043bb? bridge? ?virbr0? ? ?
company? ? ? c7c3bb65-ef25-4152-a842-e1a16728c17b? ethernet? --?
house? ? ? ? 2b89f9fd-ae29-43f9-9411-e46ac0fb19e4? ethernet? --
使用nmcli命令配置過的網(wǎng)絡(luò)會話是永久生效的临燃, 這樣當(dāng)我們下班回家后睛驳, 順手啟用 house網(wǎng)絡(luò)會話,網(wǎng)卡就能自動通過 DHCP 獲取到 IP 地址了膜廊。
# nmcli connection up house
Connection successfully activated (D-Bus active path:
/org/freedesktop/NetworkManager/ActiveConnection/8)
3.綁定兩塊網(wǎng)卡
一般來講乏沸,生產(chǎn)環(huán)境必須提供 7×24 小時的網(wǎng)絡(luò)傳輸服務(wù)。借助于網(wǎng)卡綁定技術(shù)爪瓜,不僅可以提高網(wǎng)絡(luò)傳輸速度蹬跃,更重要的是,還可以確保在其中一塊網(wǎng)卡出現(xiàn)故障時铆铆,依然可以正常提供網(wǎng)絡(luò)服務(wù)蝶缀。假設(shè)我們對兩塊網(wǎng)卡實施了綁定技術(shù)辆苔,這樣在正常工作中它們會共同傳輸數(shù)據(jù),使得網(wǎng)絡(luò)傳輸?shù)乃俣茸兊酶於笈欢壹词褂幸粔K網(wǎng)卡突然出現(xiàn)了故障,另外一塊網(wǎng)卡便會立即自動頂替上去菲驴,保證數(shù)據(jù)傳輸不會中斷荐吵。
下面我們來看一下如何綁定網(wǎng)卡。
(1)在虛擬機系統(tǒng)中再添加一塊網(wǎng)卡設(shè)備赊瞬,請確保兩塊網(wǎng)卡都處在同一個網(wǎng)絡(luò)連接中(即網(wǎng)卡模式相同)先煎。處于相同模式的網(wǎng)卡設(shè)備才可以進行網(wǎng)卡綁定,否則這兩塊網(wǎng)卡無法互相傳送數(shù)據(jù)巧涧。
(2)使用vim文本編輯器來配置網(wǎng)卡設(shè)備的綁定參數(shù)薯蝎。網(wǎng)卡綁定的理論知識類似于前面學(xué)習(xí)的RAID硬盤組,我們需要對參與綁定的網(wǎng)卡設(shè)備逐個進行“初始設(shè)置”谤绳。需要注意的是占锯,這些原本獨立的網(wǎng)卡設(shè)備此時需要被配置成為一塊“從屬”網(wǎng)卡,服務(wù)于“主”網(wǎng)卡缩筛,不應(yīng)該再有自己的IP地址等信息消略。在進行了初始設(shè)置之后,它們就可以支持網(wǎng)卡綁定瞎抛。
# vim /etc/sysconfig/network-scripts/ifcfg-eno16777728
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
DEVICE=eno16777728
MASTER=bond0
SLAVE=yes
# vim /etc/sysconfig/network-scripts/ifcfg-ens35
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
USERCTL=no
DEVICE=ens35
MASTER=bond0
SLAVE=yes
還需要將綁定后的設(shè)備命名為 bond0 并把 IP 地址等信息填寫進去艺演, 這樣當(dāng)用戶訪問相應(yīng)服務(wù)的時候,實際上就是由這兩塊網(wǎng)卡設(shè)備在共同提供服務(wù)桐臊。
# vim /etc/sysconfig/network-scripts/ifcfg-bond0
BOOTPROTO="static"
TYPE=Ethernet
ONBOOT=yes
USERCTL=no
DEVICE=bond0
IPADDR=192.168.1.145
PREFIX=24
GATEWAY=192.168.1.1
DNS=192.168.1.1
NM_CONTROLLED=no
(3)讓Linux內(nèi)核支持網(wǎng)卡綁定驅(qū)動胎撤。覺見的網(wǎng)卡綁定驅(qū)動有三種模式-mode0、mode1和mode6断凶。下面以綁定兩塊網(wǎng)卡為例伤提,講解使用的情景。
? mode0(平衡負(fù)載模式) :平時兩塊網(wǎng)卡均工作懒浮,且自動備援飘弧,但需要在與服務(wù)器本地網(wǎng)卡相連的交換機設(shè)備上進行端口聚合來支持綁定技術(shù)。
? mode1 (自動備援模式) : 平時只有一塊網(wǎng)卡工作砚著, 在它故障后自動替換為另外的網(wǎng)卡次伶。
? mode6(平衡負(fù)載模式) :平時兩塊網(wǎng)卡均工作,且自動備援稽穆,無須交換機設(shè)備提供輔助支持冠王。
比如有一臺用于提供 NFS 或者 samba 服務(wù)的文件服務(wù)器,它所能提供的
最大網(wǎng)絡(luò)傳輸速度為 100Mbit/s舌镶,但是訪問該服務(wù)器的用戶數(shù)量特別多柱彻,那么它的訪問壓力一定很大豪娜。在生產(chǎn)環(huán)境中,網(wǎng)絡(luò)的可靠性是極為重要的哟楷,而且網(wǎng)絡(luò)的傳輸速度也必須得以保證瘤载。針對這樣的情況,比較好的選擇就是 mode6 網(wǎng)卡綁定驅(qū)動模式了卖擅。因為 mode6 能夠讓兩塊網(wǎng)卡同時一起工作鸣奔, 當(dāng)其中一塊網(wǎng)卡出現(xiàn)故障后能自動備援,且無需交換機設(shè)備支援惩阶,從而提供了可靠的網(wǎng)絡(luò)傳輸保障挎狸。
下面使用 Vim 文本編輯器創(chuàng)建一個用于網(wǎng)卡綁定的驅(qū)動文件,使得綁定后的 bond0 網(wǎng)卡設(shè)備能夠支持綁定技術(shù)(bonding) 断楷;同時定義網(wǎng)卡以mode6 模式進行綁定锨匆,且出現(xiàn)故障時自動切換的時間為 100 毫秒。
# vim /etc/modprobe.d/bond.conf
alias bond0 bonding
options bond0 miimon=100 mode=6
(4)重啟網(wǎng)絡(luò)服務(wù)后網(wǎng)卡綁定操作即可成功冬筒。正常情況下只有bond0網(wǎng)卡設(shè)備才會有IP地址等信息:
# systemctl restart network
# ifconfig
注意:如果出現(xiàn)network.service - LSB: Bring up/down networking報錯恐锣,則關(guān)半網(wǎng)絡(luò)管理服務(wù),再重啟網(wǎng)卡即可账千。操作命令如下:
# systemctl stop NetworkManager
# systemctl disable NetworkManager
可以在本地主機執(zhí)行 ping 192.168.10.10 命令檢查網(wǎng)絡(luò)的連通性侥蒙。為了檢驗網(wǎng)卡綁定技術(shù)的自動備援功能,我們突然在虛擬機硬件配置中隨機移除一塊網(wǎng)卡設(shè)備匀奏,可以非常清晰地看到網(wǎng)卡切換的過程(一般只有 1 個數(shù)據(jù)丟包) 鞭衩。然后另外一塊網(wǎng)卡會繼續(xù)為用戶提供服務(wù)。
注意:linux網(wǎng)卡bonging的備份模式實驗在真實機器上做完全沒問題(前提是linux內(nèi)核支持)娃善,但是在vmware workstation虛擬中做就會出現(xiàn)如下問題:
適配器Ethernet0的MAC地址00:0c:29:64:8b:37屬于預(yù)留的地址范圍论衍,或者系統(tǒng)上的另一個虛擬適配器正在使用該地址。
配置完成后出現(xiàn)如上問題聚磺,但是bond0能夠正常啟動也能夠正常使用坯台,只不過沒有起到備份模式的效果。當(dāng)使用ifdown eth0后瘫寝,網(wǎng)絡(luò)出現(xiàn)不通現(xiàn)象蜒蕾。
二、遠程控制服務(wù)
1.SSH(Secure Shell)是一種能夠以安全的方式提供遠程登錄的協(xié)議焕阿,也是目前遠程管理Linux 系統(tǒng)的首選方式咪啡。想要使用 SSH 協(xié)議來遠程管理 Linux 系統(tǒng), 則需要部署配置 sshd 服務(wù)程序暮屡。 sshd 是基于 SSH協(xié)議開發(fā)的一款遠程管理服務(wù)程序撤摸, 不僅使用起來方便快捷, 而且能夠提供兩種安全驗證的方法:
? 基于口令的驗證 — 用賬戶和密碼來驗證登錄;
? 基于密鑰的驗證 — 需要在本地生成密鑰對准夷,然后把密鑰對中的公鑰上傳至服務(wù)器钥飞,并與服務(wù)器中的公鑰進行比較;該方式相較來說更安全衫嵌。
sshd 服務(wù)的配置信息保存在/etc/ssh/sshd_config 文件中读宙。
sshd 服務(wù)配置文件中包含的參數(shù)以及作用
Port 22:默認(rèn)的sshd服務(wù)端口
ListenAddress 0.0.0.0:設(shè)定sshd服務(wù)器監(jiān)聽的IP地址
Protocol 2:SSH協(xié)議的版本號
HostKey /etc/ssh/ssh_host_key:SSH協(xié)議版本為1時,DES私鑰存放的位置
HostKey /etc/ssh/ssh_host_rsa_key:SSH協(xié)議版本為2時楔绞,RSA私鑰存放的位置
HostKey /etc/ssh/ssh_host_dsa_key:SSH協(xié)議版本為2時论悴,DSA私鑰存放的位置
PermitRootLogin yes:設(shè)定是否允許root管理員直接登錄
StrictModes yes:當(dāng)遠程用戶的私鑰改變時直接拒絕連接
MaxAuthTries 6:最大密碼嘗試次數(shù)
MaxSessions 10:最大終端數(shù)
PasswordAuthentication yes:是否允許密碼驗證
PermitEmptyPasswords no:是否允許空密碼登錄(很不安全)
在 RHEL 7 系統(tǒng)中,已經(jīng)默認(rèn)安裝并啟用了 sshd 服務(wù)程序墓律。接下來使用ssh 命令進行遠程連接,其格式為“ssh [參數(shù)] 主機 IP 地址” 幔亥。要退出登錄則執(zhí)行 exit 命令耻讽。
在另一臺linux機器上登錄
# ssh 192.168.1.145
The authenticity of host '192.168.1.145 (192.168.1.145)' can't be established.
ECDSA key fingerprint is SHA256:41Hr+tm8UA6vzobyTTECFOHk2kDSN82BeAhXR79grdI.
ECDSA key fingerprint is
MD5:0c:56:18:81:72:2a:e5:71:d6:e2:eb:9d:12:e7:0b:0c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.145' (ECDSA) to the list of? known hosts.
root@192.168.1.145's password: (此處輸入遠程主機root管理員的密碼)
Last login: Mon Aug? 5 14:33:36 2019
# exit
logout
Connection to 192.168.1.145 closed.
如果禁止以 root 管理員的身份遠程登錄到服務(wù)器,則可以大大降低被黑客暴力破解密碼的幾率帕棉。下面進行相應(yīng)配置针肥。首先使用 Vim 文本編輯器打開 sshd 服務(wù)的主配置文件,然后把第 38 行PermitRootLogin yes 參數(shù)前的井號(#)去掉香伴,并把參數(shù)值 yes 改成 no慰枕,這樣就不再允許 root 管理員遠程登錄了。記得最后保存文件并退出即纲。
# vim /etc/ssh/sshd_config
………………省略部分輸出信息………………
36
37 #LoginGraceTime 2m
38 PermitRootLogin no
39 #StrictModes yes
40 #MaxAuthTries 6
41 #MaxSessions 10
42
………………省略部分輸出信息………………
# systemctl restart sshd
# systemctl enable sshd
在另一臺linux機器上登錄
# ssh 192.168.1.145
root@192.168.1.145's password:
Permission denied, please try again.
root@192.168.1.145's password:
Permission denied, please try again.
root@192.168.1.145's password:
Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).
2.安全密鑰驗證
加密是對信息進行編碼和解碼的技術(shù)具帮,它通過一定的算法(密鑰)將原本可以直接閱讀的明文信息轉(zhuǎn)換成密文形式。密鑰即是密文的鑰匙低斋,有私鑰和公鑰之分蜂厅。在傳輸數(shù)據(jù)時,如果擔(dān)心被他人監(jiān)聽或截獲膊畴, 就可以在傳輸前先使用公鑰對數(shù)據(jù)加密處理掘猿, 然后再行傳送。 這樣唇跨,只有掌握私鑰的用戶才能解密這段數(shù)據(jù)稠通,除此之外的其他人即便截獲了數(shù)據(jù),一般也很難將其破譯為明文信息买猖。
(1)在客戶端主機中生成“密鑰對”改橘。
# ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): (按回車鍵或設(shè)置密鑰的存儲路徑)
Enter passphrase (empty for no passphrase): (直接按回車鍵或設(shè)置密鑰的密碼)
Enter same passphrase again: (再次按回車鍵或設(shè)置密鑰的密碼)
Your identification has been saved in /root/.ssh/id_rsa.
Your public key has been saved in /root/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:AzPd+VllrzDkZDFXaU9CmOhLqvrVPf7YSg2PlnydPbM
root@linuxprobe1.com
The key's randomart image is:
+---[RSA 2048]----+
|? ? ? ? ? .*=o.=|
|? ? ? . ..*oo.=o|
|? ? ? + ..o + ooo|
|? ? ? +? o. = ..|
|? ? ? ? So .+ .? |
|? ? ? ? .o.o * .o|
|? ? ? .. . O ++o|
|? ? ? ..? + =? +|
|? ? .o.? ? +ooE |
+----[SHA256]-----+
(2)把客戶端主機中生成的公鑰文件傳送至遠程主機:
# ssh-copy-id 192.168.1.145
/bin/ssh-copy-id: INFO: Source of key(s) to be installed:"/root/.ssh/id_rsa.pub"
/bin/ssh-copy-id: INFO: attempting to log in with the new key(s),to filter out any that are already installed
/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.1.145's password:
Permission denied, please try again.
root@192.168.1.145's password:
Authentication failed.
[root@linuxprobe1 ~]# ssh-copy-id 192.168.1.145
/bin/ssh-copy-id: INFO: Source of key(s) to be installed:"/root/.ssh/id_rsa.pub"
/bin/ssh-copy-id: INFO: attempting to log in with the new key(s),to filter out any that are already installed
/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
root@192.168.1.145's password: (此處輸入遠程服務(wù)器密碼)
Number of key(s) added: 1
Now try logging into the machine, with:? "ssh '192.168.1.145'" and check to make sure that only the key(s) you wanted were added.
(3)對服務(wù)器進行設(shè)置,使其只允許密鑰驗證政勃,拒絕傳統(tǒng)的口令驗證方式唧龄。
記得在修改配置文件后保存并重啟sshd服務(wù)程序。
# vim /etc/ssh/sshd_config
………………省略部分輸出信息………………
61
62 # To disable tunneled clear text passwords, change to no
here!
63 #PasswordAuthentication yes
64 #PermitEmptyPasswords no
65 PasswordAuthentication no
66
………………省略部分輸出信息………………
# systemctl restart sshd
(4)在客戶端嘗試登錄到服務(wù)器,此時無須輸入密碼也可以成功登錄既棺。
# ssh 192.168.1.145
The authenticity of host '192.168.1.145 (192.168.1.145)' can't be established.
ECDSA key fingerprint is SHA256:41Hr+tm8UA6vzobyTTECFOHk2kDSN82BeAhXR79grdI.
ECDSA key fingerprint is MD5:0c:56:18:81:72:2a:e5:71:d6:e2:eb:9d:12:e7:0b:0c.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.145' (ECDSA) to the list of known hosts.
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
3.遠程傳輸命令
scp(secure copy)是一個基于 SSH 協(xié)議在網(wǎng)絡(luò)之間進行安全傳輸?shù)拿罘硇涓袷綖椤皊cp[參數(shù)] 本地文件 遠程帳戶@遠程 IP 地址:遠程目錄”。與第 2 章講解的 cp 命令不同丸冕,cp 命令只能在本地硬盤中進行文件復(fù)制耽梅,而 scp 不僅能夠通過網(wǎng)絡(luò)傳送數(shù)據(jù),而且所有的數(shù)據(jù)都將進行加密處理胖烛。例如眼姐,如果想把一些文件通過網(wǎng)絡(luò)從一臺主機傳遞到其他主機, 這兩臺主機又恰巧是 Linux 系統(tǒng)佩番, 這時使用 scp命令就可以輕松完成文件的傳遞了众旗。
scp 命令中可用的參數(shù)以及作用:
-v:顯示詳細(xì)的連接進度
-P:指定遠程主機的sshd端口號
-r:用于傳送文件俠
-6:使用IPv6協(xié)議
在使用 scp 命令把文件從本地復(fù)制到遠程主機時,首先需要以絕對路徑的形式寫清本地文件的存放位置趟畏。如果要傳送整個文件夾內(nèi)的所有數(shù)據(jù)贡歧,還需要額外添加參數(shù)-r 進行遞歸操作。然后寫上要傳送到的遠程主機的 IP地址赋秀,遠程服務(wù)器便會要求進行身份驗證了利朵。當(dāng)前用戶名稱為 root, 而密碼則為遠程服務(wù)器的密碼猎莲。如果想使用指定用戶的身份進行驗證绍弟,可使用用戶名@主機地址的參數(shù)格式。最后需要在遠程主機的 IP 地址后面添加冒號著洼,并在后面寫上要傳送到遠程主機的哪個文件夾中樟遣。只要參數(shù)正確并且成功驗證了用戶身份,即可開始傳送工作身笤。由于 scp 命令是基于 SSH協(xié)議進行文件傳送的年碘,而 9.2.2 小節(jié)又設(shè)置好了密鑰驗證,因此當(dāng)前在傳輸文件時展鸡,并不需要賬戶和密碼屿衅。
# echo "Welcome to LinuxProbe.com" > readme.txt
# scp /root/readme.txt 192.168.1.155:/home
The authenticity of host '192.168.1.155 (192.168.1.155)' can't be established.
ECDSA key fingerprint is SHA256:6os3yo81DehU98Z+yHDW0A711BQyMM88+MUTs5rHF7g.
ECDSA key fingerprint is MD5:29:32:ae:8c:2f:76:24:e7:64:dc:7a:9e:71:a4:52:1d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.1.155' (ECDSA) to the list of known hosts.
root@192.168.1.155's password: (此處輸入遠程服務(wù)器中root管理員的密碼)
readme.txt? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100%? 26? ?12.3KB/s? 00:00
此外,還可以使用 scp 命令把遠程主機上的文件下載到本地主機莹弊,其命令格式為“scp [參數(shù)] 遠程用戶@遠程 IP 地址:遠程文件 本地目錄” 涤久。例如,可以把遠程主機的系統(tǒng)版本信息文件下載過來忍弛,這樣就無須先登錄遠程主機响迂,再進行文件傳送了,也就省去了很多周折细疚。
# scp 192.168.1.155:/etc/redhat-release /root
root@192.168.1.155's password: (此處輸入遠程服務(wù)器中root管理員的密碼)
redhat-release? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 100%? 38? ?8.3KB/s? 00:00?
# cat redhat-release
CentOS Linux release 7.6.1810 (Core)
三蔗彤、不間斷會話服務(wù)
大家在學(xué)習(xí) sshd 服務(wù)時,不知有沒有注意到這樣一個事情:當(dāng)與遠程主機的會話被關(guān)閉時,在遠程主機上運行的命令也隨之被中斷然遏。如果我們正在使用命令來打包文件贫途,或者正在使用腳本安裝某個服務(wù)程序,中途是絕對不能關(guān)閉在本地打開的終端窗口或斷開網(wǎng)絡(luò)鏈接的待侵,甚至是網(wǎng)速的波動都有可能導(dǎo)致任務(wù)中斷丢早, 此時只能重新進行遠程鏈接并重新開始任務(wù)。 還有些時候秧倾, 我們正在執(zhí)行文件打包操作怨酝,同時又想用腳本來安裝某個服務(wù)程序, 這時會因為打包操作的輸出信息占滿用戶的屏幕界面那先,而只能再打開一個執(zhí)行遠程會話的終端窗口农猬,時間久了,難免會忘記這些打開的終端窗口是做什么用的了售淡。
screen 是一款能夠?qū)崿F(xiàn)多窗口遠程控制的開源服務(wù)程序盛险,簡單來說就是為了解決網(wǎng)絡(luò)異常中斷或為了同時控制多個遠程終端窗口而設(shè)計的程序。用戶還可以使用 screen 服務(wù)程序同時在多個遠程會話中自由切換勋又,能夠做到實現(xiàn)如下功能。
?? :即便網(wǎng)絡(luò)中斷换帜,也可讓會話隨時恢復(fù)楔壤,確保用戶不會失去對遠程會話的控制。
?? :每個會話都是獨立運行的惯驼,擁有各自獨立的輸入輸出終端窗口蹲嚣,終端窗口內(nèi)顯示過的信息也將被分開隔離保存,以便下次使用時依然能看到之前的操作記錄祟牲。
?? :當(dāng)多個用戶同時登錄到遠程服務(wù)器時隙畜,便可以使用會話共享功能讓用戶之間的輸入輸出信息共享。
在 RHEL 7 系統(tǒng)中说贝,沒有默認(rèn)安裝 screen 服務(wù)程序议惰,因此需要配置 Yum倉庫來安裝它。
# mkdir -p /media/cdrom
# mount /dev/cdrom /media/cdrom
mount: /dev/sr0 is write-protected, mounting read-only
# vim /etc/yum.repos.d/rhel7.repo
[rhel7]
name=rhel7
baseurl=file:///media/cdrom
enabled=1
gpgcheck=0
# yum install screen
Loaded plugins: fastestmirror, langpacks, product-id, search-disabled-repos, : subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Loading mirror speeds from cached hostfile base? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | 3.6 kB? ? 00:00? ?
centosplus? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | 3.4 kB? ? 00:00? ?
extras? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | 3.4 kB? ? 00:00? ?
rhel7? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | 4.1 kB? ? 00:00? ?
updates? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | 3.4 kB? ? 00:00? ?
(1/2): rhel7/group_gz? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | 134kB? 00:00? ?
(2/2): rhel7/primary_db? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | 3.4MB? 00:00? ?
Resolving Dependencies
--> Running transaction check
---> Package screen.x86_64 0:4.1.0-0.25.20120314git3c2946.el7
will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=================================================================
Package? ? Arch? ? ? ? Version? ? ? ? ? ? ? ? ? ? ? ? ? ??
Repository
? ? ? ? Size
=================================================================
Installing:
screen? ? ? x86_64? ? ? 4.1.0-0.25.20120314git3c2946.el7? ? ?
base? ? ? 552 k
Transaction Summary
=================================================================
Install? 1 Package
Total download size: 552 k
Installed size: 914 k
Is this ok [y/d/N]: y
Downloading packages:
screen-4.1.0-0.25.20120314git3c2946.el7.x86_64.rpm? ? ? ? | 552kB? 00:01? ?
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
? Installing : screen-4.1.0-0.25.20120314git3c2946.el7.x86_64? ? ? ? ? ? ?1/1
rhel7/productid? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | 1.6 kB? ? 00:00? ?
? Verifying? : screen-4.1.0-0.25.20120314git3c2946.el7.x86_64? ? ? ? ? ? ?1/1
Installed:
? screen.x86_64 0:4.1.0-0.25.20120314git3c2946.el7? ? ? ? ? ? ? ?
Complete!
1.管理遠程會話
screen 命令能做的事情非常多:可以用-S 參數(shù)創(chuàng)建會話窗口乡恕;用-d 參數(shù)將指定會話進行離線處理言询;用-r 參數(shù)恢復(fù)指定會話;用-x 參數(shù)一次性恢復(fù)所有的會話傲宜;用-ls 參數(shù)顯示當(dāng)前已有的會話运杭;以及用-wipe 參數(shù)把目前無法使用的會話刪除,等等函卒。
下面創(chuàng)建一個名稱為 backup 的會話窗口辆憔。請各位讀者留心觀察,當(dāng)在命令行中敲下這條命令的一瞬間,屏幕會快速閃動一下虱咧,這時就已經(jīng)進入screen 服務(wù)會話中了熊榛,在里面運行的任何操作都會被后臺記錄下來。
# screen -S backup
執(zhí)行命令后會立即返回一個提示符彤钟。雖然看起來與剛才沒有不同来候,但實際上可以查看到當(dāng)前的會話正在工作中。
# screen -ls
There is a screen on:
? ? ? ? 12773.backup? ? (Attached)
1 Socket in /var/run/screen/S-root.
要想退出一個會話也十分簡單逸雹,只需在命令行中執(zhí)行 exit 命令即可营搅。
# exit
[screen is terminating]
在日常的生產(chǎn)環(huán)境中,其實并不是必須先創(chuàng)建會話梆砸,然后再開始工作转质。可以直接使用screen 命令執(zhí)行要運行的命令帖世, 這樣在命令中的一切操作也都會被記錄下來休蟹, 當(dāng)命令執(zhí)行結(jié)束后 screen 會話也會自動結(jié)束。
# screen vim memo.txt
welcome to linuxprobe.com
為了演示 screen 不間斷會話服務(wù)的強大之處日矫, 我們先來創(chuàng)建一個名為linux 的會話赂弓, 然后強行把窗口關(guān)閉掉(這與進行遠程連接時突然斷網(wǎng)具有相同的效果) :
# screen -S linux
#
# tail -f /var/log/messages
由于剛才關(guān)閉了會話窗口,這樣的操作在傳統(tǒng)的遠程控制中一定會導(dǎo)致正在運行的命令也突然終止哪轿,但在 screen 不間斷會話服務(wù)中則不會這樣盈魁。
我們只需查看一下剛剛離線的會話名稱,然后嘗試恢復(fù)回來就可以繼續(xù)工作了:
# screen -ls
here is a screen on:
12881.linux (Detached)
1 Socket in /var/run/screen/S-root.
# screen -r linux
如果我們突然又想到了還有其他事情需要處理窃诉,也可以多創(chuàng)建幾個會話窗口放在一起使用杨耙。如果這段時間內(nèi)不再使用某個會話窗口,可以把它設(shè)置為臨時斷開(detach)模式飘痛,隨后在需要時再重新連接 (attach) 回來即可珊膜。 這段時間內(nèi), 在會話窗口內(nèi)運行的程序會繼續(xù)執(zhí)行宣脉。
2.會話共享功能
screen 命令不僅可以確保用戶在極端情況下也不丟失對系統(tǒng)的遠程控制车柠,保證了生產(chǎn)環(huán)境中遠程工作的不間斷性,而且它還具有會話共享塑猖、分屏切割堪遂、會話鎖定等實用的功能。其中萌庆,會話共享功能是一件很酷的事情溶褪,當(dāng)多個用戶同時控制主機的時候,它可以把屏幕內(nèi)容共享出來践险,也就是說每個用戶都可以看到相同的內(nèi)容猿妈。
screen 的會話共享功能的流程拓?fù)?
要實現(xiàn)會話共享功能吹菱,首先使用 ssh 服務(wù)程序?qū)⒔K端 A 遠程連接到服務(wù)器,并創(chuàng)建一個會話窗口彭则。
A終端
# ssh 192.168.1.145
# screen -S linuxprobe
B終端
# ssh 192.168.1.145
# screen -x
此文章參考劉遄老師所著的《linux就該這么學(xué)》鳍刷,經(jīng)過逐步調(diào)試,并驗證后形成的俯抖。
- 文/潘曉璐 我一進店門嗜愈,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人莽龟,你說我怎么就攤上這事蠕嫁。” “怎么了毯盈?”我有些...
- 文/不壞的土叔 我叫張陵剃毒,是天一觀的道長。 經(jīng)常有香客問我奶镶,道長,這世上最難降的妖魔是什么陪拘? 我笑而不...
- 正文 為了忘掉前任厂镇,我火速辦了婚禮,結(jié)果婚禮上左刽,老公的妹妹穿的比我還像新娘捺信。我一直安慰自己,他們只是感情好欠痴,可當(dāng)我...
- 文/花漫 我一把揭開白布迄靠。 她就那樣靜靜地躺著,像睡著了一般喇辽。 火紅的嫁衣襯著肌膚如雪掌挚。 梳的紋絲不亂的頭發(fā)上,一...
- 文/蒼蘭香墨 我猛地睜開眼是目,長吁一口氣:“原來是場噩夢啊……” “哼谤饭!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起懊纳,我...
- 正文 年R本政府宣布,位于F島的核電站淮逊,受9級特大地震影響催首,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜泄鹏,卻給世界環(huán)境...
- 文/蒙蒙 一郎任、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧备籽,春花似錦舶治、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至珠闰,卻和暖如春惜浅,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背伏嗜。 一陣腳步聲響...
推薦閱讀更多精彩內(nèi)容
- 基礎(chǔ)命令 為了在 sudo 中設(shè)置權(quán)限提升刃唐,您需要編輯 sudoers 文件。 你不應(yīng)該直接編輯文件界轩,而是使用:s...
- 1.命令格式:ifconfig [網(wǎng)絡(luò)設(shè)備] [參數(shù)] 2.命令功能: ifconfig 命令用來查看和配置網(wǎng)絡(luò)設(shè)...
- Linux命令格式: command [options] [arguments]command:命令options...
- 轉(zhuǎn)自http://www.ibm.com/developerworks/cn/linux/l-cn-screen/...
- 1.描述計算機的組成及其功能 (一)計算機的組成 1.CPU 2.CPU風(fēng)扇 3.BIOS 4.內(nèi)存 5.硬盤 6...