新聞中心
Linux里面netstat -an命令作用是什么?
題主你好,
專注于為中小企業(yè)提供成都網(wǎng)站制作、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)浚縣免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了上千余家企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。
默認(rèn)情況下,netstat只顯示處于已連接狀態(tài)的連接, 而加上-a參數(shù)后會(huì)顯示所有狀態(tài)的連接, 說白了就是加上-a參數(shù)顯示的內(nèi)容要大于等于不加-a參數(shù)時(shí)顯示的內(nèi)容, 你也可以簡(jiǎn)單的理解為加上-a參數(shù)后顯示的條目更多了.
不加-a:
加-a:
而-n的意思是不將端口解析成服務(wù),啥意思呢,也就是說每個(gè)連接所監(jiān)聽的端口都對(duì)應(yīng)著一個(gè)運(yùn)行在系統(tǒng)上的服務(wù),如你本地的機(jī)器監(jiān)聽著80端口,則一般情況下說明你本地正在運(yùn)行著http服務(wù),此時(shí)如果你不加-n選項(xiàng),默認(rèn)你看到的是1.1.1.1:https,即將端口解析成了服務(wù)名, 而你加上-n后看到的是1.1.1.1:443,即直接顯示的端口名.直接顯示端口名的好處是命令回顯的快, 因?yàn)樯倭朔?wù)解析的步驟,缺點(diǎn)也很明顯,不是很直觀(你想啊, 443和http這兩個(gè)相比,還是http更直觀一些):
不加-n:
加-n:
*.需要注意的是State列不只有ESTABLISHED和LISTEN這兩種狀態(tài),還有其它狀態(tài), 這里就不展開了,通過上面的描述,題主先簡(jiǎn)單的理解一下,如果想要深入的理解netstat顯示的所有內(nèi)容題主還需要學(xué)習(xí)tcp,udp等協(xié)議的細(xì)節(jié).
*.一般用的最多的就是" netstat -an | grep 端口號(hào) " 來看看該端口號(hào)是否已經(jīng)被占用了.
=====
希望可以幫到題主, 歡迎追問.
linux如何設(shè)置一般用戶密碼必須達(dá)到一定強(qiáng)度?還有3月強(qiáng)制更改一次密碼?
1、首先使用的命令為:passwd。
2、在終端輸入passwd,然后回車,會(huì)讓輸入新的密碼,在輸入密碼時(shí),終端并不會(huì)顯示出輸入的密碼,所以不要以為自己沒有輸入進(jìn)去。
3、然后再次輸入密碼,進(jìn)行密碼確認(rèn)。
4、確認(rèn)之后,就會(huì)提示更改密碼成功。
5、為了驗(yàn)證是否更改密碼成功,沒必要對(duì)系統(tǒng)進(jìn)行重啟,只需要更換用戶就可以了。
怎樣開啟linux系統(tǒng)下的ntp同步請(qǐng)求
Linux下glibc提供了我們事先編譯好的許多timezone文件, 他們就放在/usr/share/zoneinfo這個(gè)目錄下,這里基本涵蓋了大部分的國(guó)家和城市
# ls -F /usr/share/zoneinfo/
Africa/ Chile/ Factory Iceland Mexico/ posix/ Universal
America/ CST6CDT GB Indian/ Mideast/ posixrules US/
Antarctica/ Cuba GB-Eire Iran MST PRC UTC
Arctic/ EET GMT iso3166.tab MST7MDT PST8PDT WET
Asia/ Egypt GMT0 Israel Navajo right/ W-SU
Atlantic/ Eire GMT-0 Jamaica NZ ROC zone.tab
Australia/ EST GMT+0 Japan NZ-CHAT ROK Zulu
Brazil/ EST5EDT Greenwich Kwajalein Pacific/ Singapore
Canada/ Etc/ Hongkong Libya Poland Turkey
CET Europe/ HST MET Portugal UCT
在這里面我們就可以找到自己所在城市的time zone文件. 那么如果我們想查看對(duì)于每個(gè)time zone當(dāng)前的時(shí)間我們可以用zdump命令
# zdump Hongkong
Hongkong Fri Jul 6 06:13:57 2007 HKT
那么我們又怎么來告訴系統(tǒng)我們所在time zone是哪個(gè)呢? 方法有很多,這里舉出兩種 第一個(gè)就是修改/etc/localtime這個(gè)文件,這個(gè)文件定義了我么所在的local time zone. 我們可以在/usr/share/zoneinfo下找到我們的time zone文件然后拷貝去到/etc/localtimezone(或者做個(gè)symbolic link) 假設(shè)我們現(xiàn)在的time zone是BST(也就是英國(guó)的夏令時(shí)間,UTC+1)
# date
Thu Jul 5 23:33:40 BST 2007
我們想把time zone換成上海所在的時(shí)區(qū)就可以這么做
# ln -sf /usr/share/zoneinfo/posix/Asia/Shanghai /etc/localtime
# date
Fri Jul 6 06:35:52 CST 2007
這樣時(shí)區(qū)就改過來了(注意時(shí)間也做了相應(yīng)的調(diào)整) 第二種方法也就設(shè)置TZ環(huán)境變量的值. 許多程序和命令都會(huì)用到這個(gè)變量的值. TZ的值可以有多種格式,最簡(jiǎn)單的設(shè)置方法就是使用tzselect命令
# tzselect
...
TZ='America/Los_Angeles';export TZ
tzselect會(huì)讓你選擇所在的國(guó)家和城市(我省略了這些步驟),最后輸出相應(yīng)的TZ變量的值.那么如果你設(shè)置了TZ的值之后時(shí)區(qū)就又會(huì)發(fā)生變化
# date
Thu Jul 5 15:48:11 PDT 2007
通過這兩個(gè)例子我們也可以發(fā)現(xiàn)TZ變量的值會(huì)override /etc/localtime. 也就是說當(dāng)TZ變量沒有定義的時(shí)候系統(tǒng)才使用/etc/localtime來確定time zone. 所以你想永久修改time zone的話那么可以把TZ變量的設(shè)置寫入/etc/profile里 好了現(xiàn)在我們知道怎么設(shè)置時(shí)區(qū)了,下面我們就來看看如何設(shè)置Linux的時(shí)間吧 3. Real Time Clock(RTC) and System Clock 說道設(shè)置時(shí)間這里還要明確另外一個(gè)概念就是在一臺(tái)計(jì)算機(jī)上我們有兩個(gè)時(shí)鐘:一個(gè)稱之為硬件時(shí)間時(shí)鐘(RTC),還有一個(gè)稱之為系統(tǒng)時(shí)鐘(System Clock) 硬件時(shí)鐘是指嵌在主板上的特殊的電路, 它的存在就是平時(shí)我們關(guān)機(jī)之后還可以計(jì)算時(shí)間的原因 系統(tǒng)時(shí)鐘就是操作系統(tǒng)的kernel所用來計(jì)算時(shí)間的時(shí)鐘. 它從1970年1月1日00:00:00 UTC時(shí)間到目前為止秒數(shù)總和的值 在Linux下系統(tǒng)時(shí)間在開機(jī)的時(shí)候會(huì)和硬件時(shí)間同步(synchronization),之后也就各自獨(dú)立運(yùn)行了 那么既然兩個(gè)時(shí)鐘獨(dú)自運(yùn)行,那么時(shí)間久了必然就會(huì)產(chǎn)生誤差了,下面我們來看一個(gè)例子
# date
Fri Jul 6 00:27:13 BST 2007
# hwclock --show
Fri 06 Jul 2007 12:27:17 AM BST -0.968931 seconds
通過hwclock --show命令我們可以查看機(jī)器上的硬件時(shí)間(always in local time zone), 我們可以看到它和系統(tǒng)時(shí)間還是有一定的誤差的, 那么我們就需要把他們同步 如果我們想要把硬件時(shí)間設(shè)置成系統(tǒng)時(shí)間我們可以運(yùn)行以下命令
# hwclock --hctosys
反之,我們也可以把系統(tǒng)時(shí)間設(shè)置成硬件時(shí)間
# hwclock --systohc
那么如果想設(shè)置硬件時(shí)間我們可以開機(jī)的時(shí)候在BIOS里設(shè)定.也可以用hwclock命令
# hwclock --set --date="mm/dd/yy hh:mm:ss"
如果想要修改系統(tǒng)時(shí)間那么用date命令就最簡(jiǎn)單了
# date -s "dd/mm/yyyy hh:mm:ss"
現(xiàn)在我們知道了如何設(shè)置系統(tǒng)和硬件的時(shí)間. 但問題是如果這兩個(gè)時(shí)間都不準(zhǔn)確了怎么辦? 那么我們就需要在互聯(lián)網(wǎng)上找到一個(gè)可以提供我們準(zhǔn)確時(shí)間的服務(wù)器然后通過一種協(xié)議來同步我們的系統(tǒng)時(shí)間,那么這個(gè)協(xié)議就是NTP了. 注意接下去我們所要說的同步就都是指系統(tǒng)時(shí)間和網(wǎng)絡(luò)服務(wù)器之間的同步了 4. 設(shè)置NTP Server前的準(zhǔn)備 其實(shí)這個(gè)標(biāo)題應(yīng)該改為設(shè)置"NTP Relay Server"前的準(zhǔn)備更加合適. 因?yàn)椴徽撐覀兊挠?jì)算機(jī)配置多好運(yùn)行時(shí)間久了都會(huì)產(chǎn)生誤差,所以不足以給互聯(lián)網(wǎng)上的其他服務(wù)器做NTP Server. 真正能夠精確地測(cè)算時(shí)間的還是原子鐘. 但由于原子鐘十分的昂貴,只有少部分組織擁有, 他們連接到計(jì)算機(jī)之后就成了一臺(tái)真正的NTP Server. 而我們所要做的就是連接到這些服務(wù)器上同步我們系統(tǒng)的時(shí)間,然后把我們自己的服務(wù)器做成NTP Relay Server再給互聯(lián)網(wǎng)或者是局域網(wǎng)內(nèi)的用戶提供同步服務(wù) 好了,前面講了一大堆理論,現(xiàn)在我們來動(dòng)手實(shí)踐一下吧. 架設(shè)一個(gè)NTP Relay Server其實(shí)非常簡(jiǎn)單,我們先把需要的RPM包裝上
# rpm -ivh ntp-4.2.2p1-5.el5.rpm
那么第一步我們就要找到在互聯(lián)網(wǎng)上給我們提供同步服務(wù)的NTP Server 是NTP的官方網(wǎng)站,在這上面我們可以找到離我們城市最近的NTP Server. NTP建議我們?yōu)榱吮U蠒r(shí)間的準(zhǔn)確性,最少找兩個(gè)個(gè)NTP Server 那么比如在英國(guó)的話就可以選擇下面兩個(gè)服務(wù)器 0.uk.pool.ntp.org 1.uk.pool.ntp.org 它的一般格式都是number.country.pool.ntp.org 第二步要做的就是在打開NTP服務(wù)器之前先和這些服務(wù)器做一個(gè)同步,使得我們機(jī)器的時(shí)間盡量接近標(biāo)準(zhǔn)時(shí)間. 這里我們可以用ntpdate命令
# ntpdate 0.uk.pool.ntp.org
6 Jul 01:21:49 ntpdate[4528]: step time server 213.222.193.35 offset -38908.575181 sec
# ntpdate 0.pool.ntp.org
6 Jul 01:21:56 ntpdate[4530]: adjust time server 213.222.193.35 offset -0.000065 sec
假如你的時(shí)間差的很離譜的話第一次會(huì)看到調(diào)整的幅度比較大,所以保險(xiǎn)起見可以運(yùn)行兩次. 那么為什么在打開NTP服務(wù)之前先要手動(dòng)運(yùn)行同步呢? 1. 因?yàn)楦鶕?jù)NTP的設(shè)置,如果你的系統(tǒng)時(shí)間比正確時(shí)間要快的話那么NTP是不會(huì)幫你調(diào)整的,所以要么你把時(shí)間設(shè)置回去,要么先做一個(gè)手動(dòng)同步 2. 當(dāng)你的時(shí)間設(shè)置和NTP服務(wù)器的時(shí)間相差很大的時(shí)候,NTP會(huì)花上較長(zhǎng)一段時(shí)間進(jìn)行調(diào)整.所以手動(dòng)同步可以減少這段時(shí)間 5. 配置和運(yùn)行NTP Server 現(xiàn)在我們就來創(chuàng)建NTP的配置文件了, 它就是/etc/ntp.conf. 我們只需要加入上面的NTP Server和一個(gè)driftfile就可以了
# vi /etc/ntp.conf
server 0.uk.pool.ntp.org
server 1.uk.pool.ntp.org
driftfile /var/lib/ntp/ntp.drift
非常的簡(jiǎn)單. 接下來我們就啟動(dòng)NTP Server,并且設(shè)置其在開機(jī)后自動(dòng)運(yùn)行
# /etc/init.d/ntpd/start
# chkconfig --level 35 ntpd on
6. 查看NTP服務(wù)的運(yùn)行狀況 現(xiàn)在我們已經(jīng)啟動(dòng)了NTP的服務(wù),但是我們的系統(tǒng)時(shí)間到底和服務(wù)器同步了沒有呢? 為此NTP提供了一個(gè)很好的查看工具: ntpq (NTP query) 我建議大家在打開NTP服務(wù)器后就可以運(yùn)行ntpq命令來監(jiān)測(cè)服務(wù)器的運(yùn)行.這里我們可以使用watch命令來查看一段時(shí)間內(nèi)服務(wù)器各項(xiàng)數(shù)值的變化
# watch ntpq -p
Every 2.0s: ntpq -p Sat Jul 7 00:41:45 2007
remote refid st t when poll reach delay offset jitter
==============================================================================
+193.60.199.75 193.62.22.98 2 u 52 64 377 8.578 10.203 289.032
*mozart.musicbox 192.5.41.41 2 u 54 64 377 19.301 -60.218 292.411
現(xiàn)在我就來解釋一下其中的含義 remote: 它指的就是本地機(jī)器所連接的遠(yuǎn)程N(yùn)TP服務(wù)器 refid: 它指的是給遠(yuǎn)程服務(wù)器(e.g. 193.60.199.75)提供時(shí)間同步的服務(wù)器 st: 遠(yuǎn)程服務(wù)器的級(jí)別. 由于NTP是層型結(jié)構(gòu),有頂端的服務(wù)器,多層的Relay Server再到客戶端. 所以服務(wù)器從高到低級(jí)別可以設(shè)定為1-16. 為了減緩負(fù)荷和網(wǎng)絡(luò)堵塞,原則上應(yīng)該避免直接連接到級(jí)別為1的服務(wù)器的. t: 這個(gè).....我也不知道啥意思^_^ when: 我個(gè)人把它理解為一個(gè)計(jì)時(shí)器用來告訴我們還有多久本地機(jī)器就需要和遠(yuǎn)程服務(wù)器進(jìn)行一次時(shí)間同步 poll: 本地機(jī)和遠(yuǎn)程服務(wù)器多少時(shí)間進(jìn)行一次同步(單位為秒). 在一開始運(yùn)行NTP的時(shí)候這個(gè)poll值會(huì)比較小,那樣和服務(wù)器同步的頻率也就增加了,可以盡快調(diào)整到正確的時(shí)間范圍.之后poll值會(huì)逐漸增大,同步的頻率也就會(huì)相應(yīng)減小 reach: 這是一個(gè)八進(jìn)制值,用來測(cè)試能否和服務(wù)器連接.每成功連接一次它的值就會(huì)增加 delay: 從本地機(jī)發(fā)送同步要求到服務(wù)器的round trip time offset: 這是個(gè)最關(guān)鍵的值, 它告訴了我們本地機(jī)和服務(wù)器之間的時(shí)間差別. offset越接近于0,我們就和服務(wù)器的時(shí)間越接近 jitter: 這是一個(gè)用來做統(tǒng)計(jì)的值. 它統(tǒng)計(jì)了在特定個(gè)連續(xù)的連接數(shù)里offset的分布情況. 簡(jiǎn)單地說這個(gè)數(shù)值的絕對(duì)值越小我們和服務(wù)器的時(shí)間就越精確 那么大家細(xì)心的話就會(huì)發(fā)現(xiàn)兩個(gè)問題: 第一我們連接的是0.uk.pool.ntp.org為什么和remote server不一樣? 第二那個(gè)最前面的+和*都是什么意思呢? 第一個(gè)問題不難理解,因?yàn)镹TP提供給我們的是一個(gè)cluster server所以每次連接的得到的服務(wù)器都有可能是不一樣.同樣這也告訴我們了在指定NTP Server的時(shí)候應(yīng)該使用hostname而不是IP 第二個(gè)問題和第一個(gè)相關(guān),既然有這么多的服務(wù)器就是為了在發(fā)生問題的時(shí)候其他的服務(wù)器還可以正常地給我們提供服務(wù).那么如何知道這些服務(wù)器的狀態(tài)呢? 這就是第一個(gè)記號(hào)會(huì)告訴我們的信息 * 它告訴我們遠(yuǎn)端的服務(wù)器已經(jīng)被確認(rèn)為我們的主NTP Server,我們系統(tǒng)的時(shí)間將由這臺(tái)機(jī)器所提供 + 它將作為輔助的NTP Server和帶有*號(hào)的服務(wù)器一起為我們提供同步服務(wù). 當(dāng)*號(hào)服務(wù)器不可用時(shí)它就可以接管 - 遠(yuǎn)程服務(wù)器被clustering algorithm認(rèn)為是不合格的NTP Server x 遠(yuǎn)程服務(wù)器不可用 了解這些之后我們就可以實(shí)時(shí)監(jiān)測(cè)我們系統(tǒng)的時(shí)間同步狀況了 7. NTP安全設(shè)置 運(yùn)行一個(gè)NTP Server不需要占用很多的系統(tǒng)資源,所以也不用專門配置獨(dú)立的服務(wù)器,就可以給許多client提供時(shí)間同步服務(wù), 但是一些基本的安全設(shè)置還是很有必要的 那么這里一個(gè)很簡(jiǎn)單的思路就是第一我們只允許局域網(wǎng)內(nèi)一部分的用戶連接到我們的服務(wù)器. 第二個(gè)就是這些client不能修改我們服務(wù)器上的時(shí)間 在/etc/ntp.conf文件中我們可以用restrict關(guān)鍵字來配置上面的要求 首先我們對(duì)于默認(rèn)的client拒絕所有的操作
restrict default kod nomodify notrap nopeer noquery
然后允許本機(jī)地址一切的操作
restrict 127.0.0.1
最后我們?cè)试S局域網(wǎng)內(nèi)所有client連接到這臺(tái)服務(wù)器同步時(shí)間.但是拒絕讓他們修改服務(wù)器上的時(shí)間
restrict 192.168.1.0 mask 255.255.255.0 nomodify
把這三條加入到/etc/ntp.conf中就完成了我們的簡(jiǎn)單配置. NTP還可以用key來做authenticaiton,這里就不詳細(xì)介紹了 8. NTP client的設(shè)置 做到這里我們已經(jīng)有了一臺(tái)自己的Relay Server.如果我們想讓局域網(wǎng)內(nèi)的其他client都進(jìn)行時(shí)間同步的話那么我們就都應(yīng)該照樣再搭建一臺(tái)Relay Server,然后把所有的client都指向這兩臺(tái)服務(wù)器(注意不要把所有的client都指向Internet上的服務(wù)器). 只要在client的ntp.conf加上這你自己的服務(wù)器就可以了
server ntp1.leonard.com
server ntp2.leonard.com
linux下,記錄響應(yīng)時(shí)間的腳本,精確到毫秒ms
gettimeofday(取得目前的時(shí)間)
相關(guān)函數(shù)
time,ctime,ftime,settimeofday
表頭文件
#include sys/time.h
#include unistd.h
定義函數(shù)
int gettimeofday ( struct timeval * tv , struct timezone * tz )
函數(shù)說明
gettimeofday()會(huì)把目前的時(shí)間有tv所指的結(jié)構(gòu)返回,當(dāng)?shù)貢r(shí)區(qū)的信息則放到tz所指的結(jié)構(gòu)中。
timeval結(jié)構(gòu)定義為:
struct timeval{
long tv_sec; /*秒*/
long tv_usec; /*微秒*/
};
timezone 結(jié)構(gòu)定義為:
struct timezone{
int tz_minuteswest; /*和Greenwich 時(shí)間差了多少分鐘*/
int tz_dsttime; /*日光節(jié)約時(shí)間的狀態(tài)*/
};
上述兩個(gè)結(jié)構(gòu)都定義在/usr/include/sys/time.h。tz_dsttime 所代表的狀態(tài)如下
DST_NONE /*不使用*/
DST_USA /*美國(guó)*/
DST_AUST /*澳洲*/
DST_WET /*西歐*/
DST_MET /*中歐*/
DST_EET /*東歐*/
DST_CAN /*加拿大*/
DST_GB /*大不列顛*/
DST_RUM /*羅馬尼亞*/
DST_TUR /*土耳其*/
DST_AUSTALT /*澳洲(1986年以后)*/
返回值
成功則返回0,失敗返回-1,錯(cuò)誤代碼存于errno。附加說明EFAULT指針tv和tz所指的內(nèi)存空間超出存取權(quán)限。
范例
#includesys/time.h
#includeunistd.h
main(){
struct timeval tv;
struct timezone tz;
gettimeofday (tv , tz);
printf(“tv_sec; %d\n”, tv,.tv_sec) ;
printf(“tv_usec; %d\n”,tv.tv_usec);
printf(“tz_minuteswest; %d\n”, tz.tz_minuteswest);
printf(“tz_dsttime, %d\n”,tz.tz_dsttime);
}
執(zhí)行
tv_sec: 974857339
tv_usec:136996
tz_minuteswest:-540
tz_dsttime:0
網(wǎng)站標(biāo)題:linux的met命令的簡(jiǎn)單介紹
標(biāo)題網(wǎng)址:http://www.ef60e0e.cn/article/ddodhpc.html