正在決定eth0ip
『壹』 用C實現斷點續傳的功能,詳細點的實現原理是什麼嘞
用C實現斷點續傳的功能,詳細點的實現原理是什麼嘞
於HTTP 協議的多執行緒下載和斷點續傳的實現 學 生:葉升路 指導教師:覃 穎 (三峽大學 電氣資訊學院) 摘 要:本文介紹了網路下載軟體中的最新技術——多執行緒下載和斷點續傳技術,同時 也介紹了HTTP 協議的發展、特點以及WinSock 程式設計技術。
FTP客戶端怎麼樣實現斷點續傳的功能?
上傳的時候,如果檔案已經存在,服務端會返回檔案已經存在大小,根據這個大小,從本地檔案讀取這個大小之後的資料,進行斷點續傳
c#winform中怎麼利用wini實現斷點續傳?
WinI 提供對常用的網際毀首網路協議,包括 Gopher、 FTP 和 HTTP 訪問。使用 WinI,可以不必處理 WinSock、 TCP/IP 或特定的網際網路協議的詳細資訊寫入 Inter 客戶端應用程式的程式設計中,更高的級別。
FTP 通常公開要將一個檔案附加到另一個"追加"命令。WinI 不直接公開此功能。
在 Inter Explorer 3.0 和 4.0 中,這一問題的解決方法是從伺服器下載檔案、 將附加到該客戶端然後上載該檔案備份到伺服器上。
從開始 Inter Explorer 5,FTP 命令可以直接傳送到 FTP 伺服器使用 FtpCommand,如下所示:
CHAR szTemp[256];
wsprintf (szTemp, "APPE %s", "DestFile.txt");
bRet = FtpCommand( hConnection, WinI Connection handle
TRUE, Yes, I expect a response
FTP_TRANSFER_TYPE_ASCII, I'm receiving ASCII
szTemp, This is the FTP mand I am passing
0, No context needed
&hResponse); The handle to read the response
if (!bRet)
{
cout << "FtpCommand failed, error: " << GetLastError() << endl;
return;
}
wsprintf (szTemp, "This data will be appended to the file");
DWORD dwSize;
if (!InterWriteFile (hResponse, (LPVOID)szTemp, lstrlen(szTemp)+1, &dwSize))
{
cout << "InterWriteFile failed, error: " << GetLastError() << endl;
return;
}
用swoole做websocket,怎麼實現資料斷點續傳
在php的web控制器中,每當更新了資料庫的資料庫後,我需要將這些資料傳送到其他使用者的客戶端, 不知在web控制器中怎麼實現這個一個目的,怎麼才能swoole_websocket_server傳送這些最新的資料。如果再建立一個 swoole_client話又感覺不好。
主軸定位功能的實現原理是什麼
主軸定位指通過一個輸出點控制主軸旋轉到特定的位置以方便換刀或者主軸配合其它裝置動作。
主軸定位是通過主軸伺服驅動模組內建的位置控制功能和檢測主軸的位置編碼器(可以安裝在主軸上或者是主軸電機內建的編碼器)來實現主軸定位的。
API有斷點續傳的功能嗎?
有,可以通過HTML5 File api 實現斷點續傳。
一、實現檔案多選
HTML5的<input>新增了"multiple"屬性,該屬性可接受多個值的檔案上傳欄位
- <input type=filemultiple="multiple"name="file"id="file">
添加了該屬性使用者就可以在彈出的對話方塊中一次性納源選擇多個檔案了
二、實現檔案從計算機拖拽到網頁以及新增檔案佇列功能
這里我們用 dragover 和 drop 兩個事件來管理檔案拖拽的功能
其中 dragover 用來處理在指定的元素上洞余態移動時的事件,這里我們通過給body系結dragover時間來處理頁面中拖動檔案的事件
- document.body.addEventListener('dragover',dragFile,false);
- functiondragFile(evt){
- evt.sPropagation();
- evt.preventDefault();
- evt.dataTransfer.dropEffect=''
- }
用 drop 事件來處理滑鼠松開時候的事件,此時應該將使用者拖動過來的檔案加入到上傳佇列中,以供後續的處理
- document.body.addEventListener('drop',dropFile,false);
- functiondragFile(evt){
- evt.sPropagation();
- evt.preventDefault();
- dataTransfer.files屬性可以獲取到所有拖動選擇的檔案,通過遍歷可以讀取到所有檔案的資訊。
- 遍歷每個檔案可以獲取到檔案的 name、size、type、lastModifiedDate等關鍵資訊
- varfiles=evt.dataTransfer.files;
- addfile 方法 用來新增上傳檔案佇列,在input的change事件中也需要呼叫
- 該方法首先檢查有無檔案正在上傳中,如果有就將後續加入的檔案放到上傳佇列中,如果沒有檔案正在上傳就直接執行上傳命令
- addfile(files);
-
}
斷點續傳指的是在下載或上傳時,將下載或上傳任務(一個檔案或一個壓縮包)人為的劃分為幾個部分,每一個部分採用一個執行緒進行上傳或下載,如果碰到網路故障,可以從已經上傳或下載的部分開始繼續上傳下載未完成的部分,而沒有必要從頭開始上傳下載。使用者可以節省時間,提高速度。
360瀏覽器如何實現斷點續傳
- 360安全瀏覽器內建下載工具是支援斷點續傳功能的,但是斷點續傳需要下載工具和下載資源相互支援配合才行。
-
所以,如果使用360se下載的檔案無法斷點續傳的話,一般都是資源伺服器不支援斷點續傳功能。
-
部分下載網為了防止盜鏈是不允許斷點續傳的。
代理的實現原理是什麼?
代理伺服器有很多種,大體分為三類:HTTP、FTP、SOCKS,其中又分為透明代理和不透明代理,透明代理一般是閘道器,為硬體
過程:
(1)客戶端先和代理伺服器通訊,建立TCP連線,目的IP是代理伺服器的IP
(2)客戶端發出GET命令,GET命令中包含URL或IP地址、明文
(3)代理伺服器將其中的URL轉換為IP地址,可能會有DNS,將源資料包中的資料拷貝下來,去掉URL,重新組包再發出去
(4)代理伺服器和真實伺服器通訊,源IP是代理伺服器的IP
以上就是代理的實現原理,在我們日常生活中只有在學習IT才會了解哦,我也是在黑馬程式設計師學習之後才了解的。
什麼是ECMP?ECMP的實現原理是什麼?
Linux 平台上之 Multipath Routing 應用
--------------------------------------------------------------------------------
撰稿/整理: Rex Tsai <[email protected].>
HTML 版本:
:kalug.linux./sections.php?op=viewarticle&artid=4
TEXT 版本:
[Tips] Linux 平台上之 Multipath Routing 應用.
$Date: 2001/10/22 09:25:41 $
警告:
*****************************************************************************
您因使用或不能使用本文之教學而產生之任何軟體、硬體損害(包括但不限
於直接或間接個人損害、營業利潤之喪失、業務中斷、營業資訊之遺失、或
任何其他金錢損失),概不負任何損害賠償責任。
The author has taken care in the preparation of this paper, but
make no expressed or implied warranty of any kind and assume no
responsibility for errors or omissions. No liability is assumed for
incidental or consequential damages in connection with or arising
out of the use of the information or programs contained herein.
Linux is a registered trademark of Linus Torvalds. Other proct
and pany names mentioned herein may be the trademarks of their
respective owners.
*****************************************************************************
撰稿/整理: Rex Tsai <[email protected].>
此檔案應有許多技術上得問題. 請熟悉的朋友來信指教.
[Introction]
許多中小企業或是 Soho 甚至家庭, 會在家中裝有一條以上寬頻/寬頻線路.
這篇 Tips 將介紹如何在 Linux 上, 好好的應用這些資源.
在你使用兩家不同的 ISP 的時候, destination address-based load
balancing 將會是最好的解決方案. 你的封包可以即時透過不同的 ISP 線路
走出去. 當然這里所提的是從內部到外部, 如果你的專線提供不同的網路服
務提供給網路上得人存取, 那麼接下來所說明的方式不適合您.
此篇文章只能提供內部網路對外的 load sharing.
以下文章以 GNU/Debian, Linux kernel 2.4.12, iproute-20001007-1 為
環境, 所有動作請在主機前面執行.
假設你有兩條以上的網際網路資料線路 (xDSL, ISDN, Cable, whatever..),
想充分使用這些線路, 概觀來看有三種方式
1. Multiplexing
2. Packet-wise load balancing
3. Destination address-based load balancing,
或稱 Equal-Cost MultiPath Routing (ECMP)
稍微解釋一下三種方式的不同
1. Multiplexing
Multiplexing, 這個方式提供某些路由器提供 offer-load balancing 或叫
做 load sharing. 這個方式可以讓路由器將流量分給不同的外流 ports.
但是會造成每個 port 的傳送上約有 30 % 的 overhead. 此外, 每家廠商的
實作都是獨一的, 因次你會被鎖在特定的解決方案上.
類似的技術是 "bonding" 或是 "multi-link". 這里所提得 Bonding 是一
個標准, 是由 Bandwidth on Demand Interoperability Group (一個大
概有四十個製造商的協會)所提. 已經提交給 American National Standards
Institute TR41.4 group. 這個通常的在於兩條資料線路都是接在同一個
點(ISP)上的時候, 因此如果是兩條不同 ISP 所提供的線路, 那麼就沒辦法
達到這個目的. 當然, 如果你的 ISP 不提供此項技術服務, 那麼也是沒轍.
舉個例子, 像是 stick multiple ISDN channels. 將幾個慢速的線路合成為
快速的一條. 像是 ISDN H.221 規格即用到 inverse multiplexing. 但通常
用於視訊傳輸而不是電子資料.
2. Packet-wise load balancing:
這個在你可以得到所有的 ISP 協助的時候是可行的, 如果兩家 ISP 都願意
協助將其不同的路由器皆設定到同一個 IP 位址. 那麼便可以這么作.
在這個方式中, 你會用到像是 sch_teql (the TEQL scheler) 來創造一個
virtual device 將你的封包分散在不同的網路介面上.
一般來講, 如果你是使用兩家不同 ISP , 那麼你不可以使用這個解決方案.
但, 你 "可以" 將所有的網路封包透過 IPIP or CIPE (Crypto IP Encapsu-
lation) 的方式來解決這個問題. 看看 Linux Kernel 中的 IP: tunneling.
3. Equal-Cost MultiPath:
在 Linux 核心中叫做 equal cost multipath (CONFIG_IP_ROUTE_MULTIPATH)
比較正確的說法應該是 "destination address-based load balancing". 一
般 Linux 想要為某個 IP 位址找到路由, 會因為效能的問題去查驗暫存(cache)
中的資料, 如果目標 IP 並沒有在暫存空間中, 那麼他便會去查 routing table
來決定該 IP 位址的路由, 並將該路由放進 cache 中.
一般來講核心中的路由功能只能為某個封包決定唯一的方向. 如果使用 ECMP 並
有機會讓某個 package pattern 具有好幾種不同的方向, 可以讓某個符合路由條
件的封包透過 "equal" cost 或是自訂的權重來選擇該走的路由.
[Howto]
如果你有數台電腦想使用外部網路, 一條 ADSL 不夠你使用(例如某人抓檔太凶)
那麼這是你正在找的解決方案. 你所能做的作好的方式就是每個 connection 可以
以 "non-deterministic fashion" 的方式選擇路由, 將 connection 分散到不同的
Router 上, 注意: 這里所說的不是 packets, 這樣 TCP/IP session 將無法連續.
但是這整個路由程式有兩個部份四個問題要解決.
1a. How to get your packets to the outside world,
1b. How the outside world replies to you,
2a. How the outside world sends packets to you,
2b. How you reply to the outside world.
Multipath 可以解決 1a 出去的問題. 一般的路由設定可以解決 1b 與 2a. 而 2b
則必須使用 policy routing (multiple tables)才能解決, Multiple Tables 可以
讓你加入以封包來源位址為依據來決定路由.
以下的範例, 在核心中, 務必加入編譯以下選項
必備:
CONFIG_NETLINK=y
這個選項是 Kernel/User link socket
CONFIG_RTNETLINK=y
Routing messages
CONFIG_INET=y
TCP/IP neorking
CONFIG_IP_ADVANCED_ROUTER=y
IP: advanced router
CONFIG_IP_MULTIPLE_TABLES=y
IP: policy routing
CONFIG_IP_ROUTE_MULTIPATH=y
IP: equal cost multipath
選用:
CONFIG_IP_ROUTE_LARGE_TABLES=y
一般來講 IP: large routing tables 也會勾選, 一方面 routing
zones 可以大於 64 筆, 這些資料存在 hash 資料結構中, 也可以
加速 "the routing process".
而 iproute 套件也是必須的軟體. 這個軟體的安裝方式與位置請洽詢提供
您所使用套件之廠商/組織. (Red Hat, Debian, Mandrake, SuSE, etc...)
重頭戲來了, 這里假設你有三塊網路卡, 分別給內部網路與兩家 ISP. eth0
是內部網路, eth1 與 eth2 是其他兩家 ISP 線路.
eth0 是內部網路, 范圍是 10.0.0.0/255.255.255.0
eth1 其中一家 ISP, IP 是 1.1.1.1, 閘道器(gateway)是 1.1.1.253
eth2 另外一家 ISP, IP 是 2.2.2.2, 閘道器(gateway)是 2.2.2.253
# 列出所有的 rule
ip rule list
# table 後的 "10" 是 table identifer, 為數字.
# 注: 可用英文代稱取代請看 /etc/iproute2/rt_tables
#
# table 10 是給在 gateway 後面的內部網路使用, 10.0.0.x 是 LAN 使用的 IP.
#
# pref 後面指定的 "10" 是 priority. 為 policy routing database 搜尋的次序
ip rule add pref 10 to 10.0.0.0/24 table 10
ip route add 10.0.0.0/24 table 10 dev eth1
# table 20 給 ISP #1, IP 1.1.1.1, gateway 1.1.1.253
# pref 後面指定的 "20" 是 priority. 為 policy routing database 搜尋的次序
ip rule add pref 20 from 1.1.1.1 table 20
ip route add default table 20 via 1.1.1.253
# table 30 is for ISP #2, IP 2.2.2.2, gateway 2.2.2.253
ip rule add pref 20 from 2.2.2.2 table 30
ip route add default table 30 via 2.2.2.253
# 列出所有的 rule
ip rule list
# 列出 table 10 的 rule
ip route list table 10
# 列出 table 20 的 rule
ip route list table 20
# If your ISP's have servers that authenticate by originating IP address,
# (e.g. SMTP or NNTP servers) you will want to explicitly list them here.
# 這里是靜態的 routing table 設定. 如果你的 ISP 有提供某些網路服務, 必須該
# ISP 的 IP 才能使用, 那麼你會想將它設定在這里
# (e.g. Proxy, SMTP or NNTP Server)
ip route add 1.1.1.0/24 dev eth1
ip route add 2.2.2.0/24 dev eth2
# 如果上面所有的 routing table 都沒有吻合, 那麼封包會走 default route
# 這里使用 "ECMP" 來選擇上游路由器.
# "ip route repleace" 是用來取代原本的 default routi.
ip route replace default nexthop via 1.1.1.253 dev eth1
nexthop via 2.2.253 dev eth2
# 如果你想加上權重, 是這樣使用的. 請依據你的線路網路頻寬
# 頻寬越大, 請把 weight 加大.
#ip route replace default nexthop via 1.1.1.253 dev eth1 weight 1
# nexthop via 2.2.253 dev eth2 weight 3
# Make it all happen. IMPORTANT! The above mands do NOT
# flush the route cache!
ip route flush cache
<-- 結束 -->
Linux 上得 ECMP implementation 的實作有一個特色, 當你的上游網路介面
使用 ARP (e.g. 使用傳統 IP-over-Ether)時, 如果其中一個網路介面陣
亡時, Linux kernel 會自動把該介面 "shutdown", 並停止那些需要經過該
介面的 "nexthops". 但是要附註一提的是, 如果你使用的是 "網路型" ADSL
服務, 你會取得一個 ADSL 路由器, 你可能會架設一個 NAT 伺服器與 ADSL
路由器放在同一個 Ether Hub 上, 如果這個時候 ADSL 斷線, 但是 Hub
並未斷線, Linux 會認為該網路卡仍在 on-line 狀態. 除非是該 hub 或是網
路卡故障, kernel 才會 shutdown 該網路介面.
因此如果你需要確實的 "failover", 請動手寫一個小 script, 定時用 ping
或稱 "icmp echo request" 來詢問 ISP 端的閘道器是否正常的運作, 並用
"ip route replace" 來置換那些確定可通的路由. 這里就請您自行處理了.
Enjoy it, Rex.
[Reference]
[1] Linux-Net mailing list. :uwsg.iu.e/hypermail/linux//
原文 :uwsg.iu.e/hypermail/linux//0107.3/0028.
[2] Alexey N. Kuzsov, April 14, 1999, IP Command Reference
[Futrher reading]
[1] Jack Coates , Load-Balancing on LRP HOWTO
[2] Netherlabs BV (bert hubert ),
Gregory Maxwell ,
Remco van Mook ,
Martijn van Oosterhout ,
Paul B Schroeder ,
Jasper Spaans , [email protected],
Linux 2.4 Advanced Routing Howto
[3] Horacio J. Pe?a, [email protected], 05/Apr/2000
Policy based routing MICRO-HOWTO,
:pendium..ar/policy-routing.txt
[Keywords]
Linux, Routeing, 路由, ADSL, 寬頻, 寬頻, 頻寬, 合並, 分流, 共用
[Acknowledgements]
Zygo Blaxell (zblaxell@furryterror.) 在 Linux- 的說明
Digital Sesame, Inc - :d11e. 提供環境測試.
--
Best Regards.
Rex Tsai <chihchun_at_kalug.linux.>
--
ThinkPHP 的 C 函式實現原理是什麼?
c方法裡面有個靜態變數,每次初始化的時候就把配置賦值給這個靜態變數,然後每次使用的時候就直接在這個靜態變數里獲取了,樓主應該知道靜態變數在整個執行期間都存在吧
『貳』 正在決定 eth0 的 IP 信息.失敗;無鏈接.檢查電纜嗎
你是dhcp獲取ip地址你確定你的路由器正常,dhcp服務正常。重試一下。如果始終不行,可以手動設置試試看。
『叄』 linux遠行service network restart 正在決定eth0的ip信息...失敗
/etc/init.d/network restart 重啟下 看提示ping不通 看看你的路由設置有沒問題,你的IP是自動的還是用ifconfig設的?看看IP對不
『肆』 linux編輯ip後保存時 報Cannot open file for writing 如何解決
原因:附加來依賴項填寫錯誤造成的。解決方法:
如下參考:
1.首先,打開開發項目並選擇您想要修改的解決方案。
『伍』 centos 雙網卡綁定 mode哪種好些
CentOS雙網卡綁定的模式一共有7種(即mode=0、1、2、3、4、5、6):
0 (balance-rr模式)網卡的負載均衡模式。特點:(1)所有鏈 路處於負載均衡狀態,輪詢方式往每條鏈路發送報文,基於per packet方式發送。服務上ping 一個相同地址:1.1.1.1 雙網卡的兩個網卡都有流量發出。負載到兩條鏈路上,說明是基於per packet方式 ,進行輪詢發送。(2)這模式的特點增加了帶寬,同時支持容錯能力,當有鏈路出問題,會把流量切換到正常的鏈路上。
1 (active-backup模式)網卡的容錯模式。 特點:一個埠處於主狀態 ,一個處於從狀態,所有流量都在主鏈路上處理,從不會有任何流量。當主埠down掉時,從埠接手主狀態。
2 (balance-xor模式)需要交換機支持。特點:該模式將限定 流量,以保證到達特定對端的流量總是從同一個介面上發出。既然目的地是通過MAC地址來決定的,因此該模式在「本地」網路配置下可以工作得很好。如果所有 流量是通過單個路由器(比如 「網關」型網路配置,只有一個網關時,源和目標mac都固定了,那麼這個演算法算出的線路就一直是同一條,那麼這種模式就沒有多少意義了。),那該模式就不 是最好的選擇。和balance-rr一樣,交換機埠需要能配置為「port channel」。這模式是通過源和目標mac做hash因子來做xor演算法來選路的。
3 (broadcast模式)。特點:這種模式的特點是一個報文會復制兩份往bond下的兩個介面分別發送出去,當有對端交換機失效,我們感覺不到任何downtime,但此法過於浪費資源;不過這種模式有很好的容錯機制。此模式適用於金融行業,因為他們需要高可靠性的網路,不允許出現任何問題。
4 (IEEE 802.3ad動態鏈路聚合模式)需要交換機支持。特 點:802.3ad模式是IEEE標准,因此所有實現了802.3ad的對端都可以很好的互操作。802.3ad 協議包括聚合的自動配置,因此只需要很少的對交換機的手動配置(要指出的是,只有某些設備才能使用802.3ad)。802.3ad標准也要求幀按順序 (一定程度上)傳遞,因此通常單個連接不會看到包的亂序。802.3ad也有些缺點:標准要求所有設備在聚合操作時,要在同樣的速率和雙工模式,而且,和 除了balance-rr模式外的其它bonding負載均衡模式一樣,任何連接都不能使用多於一個介面的帶寬。此外,linux bonding的802.3ad實現通過對端來分發流量(通過MAC地址的XOR值),因此在「網關」型配置下,所有外出(Outgoing)流量將使用 同一個設備。進入(Incoming)的流量也可能在同一個設備上終止,這依賴於對端802.3ad實現里的均衡策略。在「本地」型配置下,路兩將通過 bond里的設備進行分發。
5 自適應傳輸負載均衡模式。特 點:balance-tlb模式通過對端均衡外出(outgoing)流量。既然它是根據MAC地址進行均衡,在「網關」型配置(如上文所述)下,該模式 會通過單個設備來發送所有流量,然而,在「本地」型網路配置下,該模式以相對智能的方式(不是balance-xor或802.3ad模式里提及的XOR 方式)來均衡多個本地網路對端,因此那些數字不幸的MAC地址(比如XOR得到同樣值)不會聚集到同一個介面上。
不像802.3ad,該模式的介面可以有不同的速率,而且不需要特別的交換機配置。不利的一面在於,該模式下所有進入的(incoming)流量會到達同一個介面;該模式要求slave介面的網路設備驅動有某種ethtool支持;而且ARP監控不可用。
6 網卡虛擬化方式。特點:該模式包含了balance-tlb模式,同時加上針對IPV4流量的接收負載均衡(receive load balance, rlb),而且不需要任何switch(交換機)的支持。接收負載均衡是通過ARP協商實現的。bonding驅動截獲本機發送的ARP應答,並把源硬體 地址改寫為bond中某個slave的唯一硬體地址,從而使得不同的對端使用不同的硬體地址進行通信。所有埠都會收到對端的arp請求報文,回復arp 回時,bond驅動模塊會截獲所發的arp回復報文,根據演算法算到相應埠,這時會把arp回復報文的源mac,send源mac都改成相應埠mac。 從抓包情況分析回復報文是第一個從埠1發,第二個從埠2發。以此類推。
具體選擇哪種要根據自己需要和交換機情況定,一般Mode=0和Mode=1比較常見;Mode=6負載均衡方式,兩塊網卡都工作,不需要交換機支持,也常用
『陸』 1、Linux系統基本網路
1.1、伺服器注意事項:
遠程伺服器不允許關機,只能重啟
重啟時應該先關閉服務
不要在伺服器訪問高峰運行高負載命令
遠程配置防火牆時不要把自己踢出伺服器
指定合理的密碼規范並定期更新
合理分配許可權
定期備份重要的數據和日誌
1.2、設置網路橋接命令和(ANT模式):
systemctl restart network------重啟網卡service network restart---------重啟網路服務
systemctl stop NetworkManager 臨時暫停網路管理器systemctl disable NetworkManager 永久關閉網路管理器
systemctl start NetworkManager 擁有root用戶的可執行許可權
systemctl stop NetworkManager 停止並禁用虛擬機 NetworkManager 服務
systemctl disable NetworkManager
注意:修改網路配置文件後,需要重新載入網路連接,如果是通過network.service則使用命令:systemctl restart network;如果是通過NetworkManager.service則使用nmcli命令:nmcli connection reload。
設置網路主要操作(橋接模式和)
[root@localhost network-scripts]# cd etc/sysconfig/network-scripts/
[root@localhost network-scripts]# vi ifcfg-ens33
systemctl restart network------重啟網卡
service network restart---------重啟網路服務
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static 設置靜態
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33
UUID=10c17057-e9c9-4831-a8ff-0757ea0abc0b
DEVICE=ens33
ONBOOT=yes #開機重啟
#IPADDR=192.168.43.168 #ip地址(需要跟主機同一個網段,不同一個IP)
IPADDR=10.63.73.20
#NETMASK=255.255.255.0 #子網掩碼(下面三個都跟主機一樣)
NETMASK=255.255.0.0
#GATEWAY=192.168.43.1 #網關
GATEWAK=10.63.255.254
#GATEWAK=10.200.0.3
#DNS1=192.168.43.1 #DNS服務
設置網路主要步驟(Nat模式)
1.打開Vm,點擊編輯->虛擬網路編輯
2.選擇VMnet8,將VMnet信息改為NAT模式,比如我的本機IP是192.168.138.1,子網掩碼為255.255.255.0
所以我將下面的IP配置成192.168.138.0 子網掩碼配置成255.255.255
3.再點擊NAT設置將網管配置成192.168.138.2(ps:網關不要配置成和自己IP地址一樣)
然後再應用確定
4.右鍵點擊虛擬機設置,網路適配器改為自定義(選擇Vmnet8 Nat模式)
5.接下來開啟虛擬機
cd /etc/sysconfig/network-scripts/
vim ifcfg-eno16777736
然後再執行命令:/etc/init.d/network restart
1.3、設置防火牆
1.3.1、防火牆命令
停止防火牆:
systemctl stop firewalld.service #停止firewall 防火牆
service iptables stop #(centos7版本之前)
永久關閉防火牆:
systemctl disable firewalld.service #禁止firewall開機啟動 ( 永久關閉防火牆 )
chkconfig iptables off #永久關閉防火牆
開始防火牆:
systemctl start firewalld #啟動防火牆
systemctl restart iptables.service #重啟防火牆使配置生效
systemctl enable iptables.service #設置防火牆開機啟動(重啟)
查看防火牆狀態:
systemctl status firewalld
service iptables status # (7版本之前)
1.3.2、Linux chkconfig 命令
Linux chkconfig 命令用於檢查,設置系統的各種服務。
這是Red Hat公司遵循GPL規則所開發的程序,它可查詢操作系統在每一個執行等級中會執行哪些系統服務,其中包括各類常駐服務。
語法
chkconfig [--add][--del][--list][系統服務] 或 chkconfig [--level <等級代號>][系統服務][on/off/reset]
參數 :
--add 增加所指定的系統服務,讓 chkconfig 指令得以管理它,並同時在系統啟動的敘述文件內增加相關數據。
--del 刪除所指定的系統服務,不再由 chkconfig 指令管理,並同時在系統啟動的敘述文件內刪除相關數據。
--level<等級代號> 指定讀系統服務要在哪一個執行等級中開啟或關畢。
實例
列出chkconfig 所知道的所有命令,可以用chkconfig –list查看所有的服務及其在每個級別的開啟狀態。
# chkconfig --list
開啟服務
# chkconfig telnet on //開啟 Telnet 服務
# chkconfig --list //列出 chkconfig 所知道的所有的服務的情況
關閉服務
# chkconfig telnet off // 關閉 Telnet 服務
# chkconfig --list // 列出 chkconfig 所知道的所有的服務的情況
[root@cent01 sbin]# chkconfig --level 3 network off //關閉3級別的network服務
[root@cent01 sbin]# chkconfig --list //3級別已關閉
network 0:關 1:關 2:開 3:關 4:開 5:開 6:關
[root@cent01 sbin]# chkconfig network on //不輸入級別,默認打開2,3,4,5級別
[root@cent01 sbin]# chkconfig --list
network 0:關 1:關 2:開 3:開 4:開 5:開 6:關
[root@cent01 sbin]# chkconfig --del network //刪除network
[root@cent01 sbin]# chkconfig --list //network已消失
mysqld 0:關 1:關 2:開 3:開 4:開 5:開 6:關
netconsole 0:關 1:關 2:關 3:關 4:關 5:關 6:關
[root@cent01 sbin]# chkconfig --add network //增加network服務
[root@cent01 sbin]# chkconfig --list //network服務又恢復了
mysqld 0:關 1:關 2:開 3:開 4:開 5:開 6:關
netconsole 0:關 1:關 2:關 3:關 4:關 5:關 6:關
network 0:關 1:關 2:開 3:開 4:開 5:開 6:關
[root@cent01 sbin]# chkconfig --list
註:該輸出結果只顯示 SysV 服務,並不包含
原生 systemd 服務。SysV 配置數據
可能被原生 systemd 配置覆蓋。
要列出 systemd 服務,請執行 'systemctl list-unit-files'。
查看在具體 target 啟用的服務請執行
'systemctl list-dependencies [target]'。
mysqld 0:關 1:關 2:開 3:開 4:開 5:開 6:關
netconsole 0:關 1:關 2:關 3:關 4:關 5:關 6:關
注意: 但是這里只顯示了SysV管理的服務,centos6及之前都是這個管理工具,但是在centos7用的是systemd管理,所以systemd管理的服務在這里沒有顯示出來。
運行級別為系統啟動級別,具體含義如下:
0 shutdown關機
1 單用戶模式
2 無NFS支持的多用戶模式
3 完全多用戶模式,常用的命令行模式
4 保留給用戶自定義
5 圖形界面登錄,比3多了一個圖形界面
6 重啟
1.3.2、Linux systemd命令
systemd是管理開機啟動程序的工具(SysV啟動開機進程時一次只能啟動一個,而systemd則一次可以啟動多個服務,這樣就導致systemd的開機速度會更快。)
[root@localhost ~]# systemctl list-units --all --type=service
UNIT LOAD ACTIVE SUB DESCRIPTION
abrt-ccpp.service loaded active exited Install ABRT coremp hook
abrt-oops.service loaded active running ABRT kernel log watcher
UNIT LOAD ACTIVE SUB DESCRIPTION
[root@cent01 sbin]# ls /usr/lib/systemd/system //啟動的腳本文件目錄
[root@cent01 ~]# systemctl list-units //列出正在運行的unit
[root@cent01 ~]# systemctl list-units --all //列出所有的unit,包括active和inactive
[root@cent01 ~]# systemctl list-units --all --state=inactive //列出inactive的unit
[root@cent01 ~]# systemctl list-units --all --type=service //列出所有狀態的service
[root@cent01 ~]# systemctl list-units --type=service //列出active的service
[root@cent01 ~]# systemctl is-active crond.service //查看某個unit是否active
systemctl enable crond.service //開機啟動 .service可以省略
systemctl disable crond.service //禁止開機啟動
systemctl status crond.service //查看服務狀態
systemctl start crond.service //啟動服務
systemctl stop crond.service //停止服務
systemctl restart crond.service //重啟服務
systemctl is-enabled crond.service //查看某個服務是否開機啟動
unit /usr/lib/systemd/system 此目錄下列出了很多文件,這些文件都是unit。類別如下:
service 系統服務target 多個unit組成的組device 硬體設備mount 文件系統掛載點automount 自動掛載點path 文件或路徑scope 不是由systemd啟動的外部進程slice 進程組snapshot systemd快照socket 進程間通信的套接字swap swap文件timer 定時器
target target類似於centos6的啟動級別,target內又包含多個unit的組合,當然target內也可以包含target。啟動target就是啟動多個unit,用target來管理這些unit。
[root@cent01 ~]# systemctl list-units --all --type=target //查看當前所有的target
UNIT LOAD ACTIVE SUB DESCRIPTION
basic.target loaded active active Basic System
bluetooth.target loaded active active Bluetooth
[root@localhost ~]# systemctl list-dependencies multi-user.target
multi-user.target
● ├─abrt-ccpp.service
● ├─abrt-oops.service
● ├─abrt-vmcore.service
● ├─abrt-xorg.service
[root@localhost ~]# systemctl get-default //查看系統默認的target
multi-user.target
systemctl set-default multi-user.target //設置默認的target
multi-user.target等同於centos6的運行級別3。他們的對應關系如下:
SysV運行級別systemd target備注
0poweroff.target關閉系統
1rescure.target單用戶模式
2multiuser.target用戶自定義級別,通常識別為3
3multiuser.target多用戶命令行模式
4multiuser.target用戶自定義級別,通常識別為3
5graphical.target多用戶圖形界面,比級別3隻多一個GUI
6reboot.target重啟
所以總結起來,一個service屬於一種unit,多個unit組成一個target,當然target裡面也可以包含target。
1.4、ifconfig命令配置IP網路參數
格式:
[root@localhost /]#ifconfig [網路設備] [ip地址] [MAC地址] [netmask掩碼地址] [broadcast廣播地址(NDC)] [up/down]
[root@localhost /]#ifconfig eth0 192.168.74.130 netmask 255.255.255.0 up
用ifconfig命令配置eth0別名設備,為eth0綁定多個IP地址。
[root@localhost /]#ifconfig eth0:1 192.168.74.130
[root@localhost /]#ifconfig eth0:2 192.168.73.130
1.5、使用routedel命令添加路由
格式:
[root@localhost /]#routedel [-net|host] [網域或主機] netmask [mask] [gw]
[root@localhost /]#route #查看路由信息
功能:添加路由
-net : 表示後面接的路由為一個網路。
-host : 表示後面接的為連接到單部主機的路由。
netmask : 與網路有關,可以設定netmask決定網路的大小。
gw : gateway (網關)的簡寫,後面接的是ip地址。
1.6、使用hostname命令修改主機名稱
[root@localhost /]#hostname service.jw.com
hostnamectl set-hostname nod1
『柒』 linux遠行service network restart 正在決定eth0的ip信息...失敗
表示你的網卡沒有拿到IP,檢查一下網線是否接好,還有路由器工作是否正常。或者你是區域網,自己手動設置IP,可以通過ifup命令設置,比如"ifup eth0 192.168.128.1.10"