導航:首頁 > 網路設置 > 為linux設置網路連接網路連接超時時間

為linux設置網路連接網路連接超時時間

發布時間:2023-03-08 17:01:13

『壹』 Linux中使用nmcli配置網路

    以前都是使用ifconfig來配置網路,今天開始嘗試使用nmcli 。

1、網路介面名稱

    centos7或者紅帽7中,以en開頭標識乙太網,之前的版本是eth開頭。同時,wl標識waln介面,ww標識wwan介面。

  接下里就是網卡類型, p代表pci物理位置,o代錶板載,s代表熱插拔。最後數字表示索引、id或埠。 比如筆者的虛擬機上enp0s3,pci網卡slot3。

    如果無法確定固定名稱則採用傳統的ethn的方式。

2、查看網路配置

    使用ip addr顯示ip地址,ip addr show eth0顯示網卡eth0 , ip -s link show eth0 顯示連接狀態,可用查看到數據包。netstat -i也可以羅列網卡並查看數據流量。

3、查看路由與排查

    ip route檢查系統路由表,

    ping網關地址。ping -c4是ping 4次, timeout 4則是超時時間4秒。

    tracepath或者traceroute命令追蹤到目標主機的網路狀態。

4、埠與服務

    TCP服務使用套接字.socket作為通信的端點,其由IP地址、協議和埠組成。伺服器通常監聽標准埠,客戶端使用隨機可用埠。標准埠在/etc/services中列出。

    查看監聽埠:ss和netstat命令。

  5、使用nmcli查看網路

    networkmanager是監控和管理網路的守護進程,可用通過命令行與圖形界面來與networkmanager通信,並將配置文件保存在/etc/sysconfig/network-scripts目錄中。

    使用nmcli查看網路信息:

    nmcli con show  查看網路介面

    nmcli con show --active  查看活動網路介面

    nmcli con show  "enp0s3"  查看enp0s3網路的詳情信息

    nmcli device status 查看設備的信息

    nmcli device show enp0s3  查看 enp0s3設備的信息

  6、使用nmcli配置網路

    可以為網路設備配置多個網路連接(配置文件),但是一次只能由一個保持活動狀態。

    創建一個"default"新連接,並使用dhcp獲取網路。

    nmcli con add con-name "default" type ethernet ifname eth0

    創建一個靜態連接,配置靜態IP,並設置不自動連接。

    nmcli con add con-name "static" type ethernet ifname eth0 autoconnect no ip4 172.25.0.12/24 gw4 172.25.0.254

    更改為靜態鏈接。

    nmcli con up "static"

    更改為dhcp鏈接。

    nmcli con up "default"

    查看使用信息。

    nmcli con  add  help

    修改配置,過多就不闡述了。

    nmcli con mod

    nmcli 命令摘要:

7、編輯網路配置文件

    介面配置文件時控制單個網路設備的軟體介面,網路設備可以有多個配置文件,但是只有一個時激活狀態。

ifcfg配置文件選項(輔助IP地址將配置文件中的選項添加1)

    配置過程:

a、修改 ifcfg配置文件

b、使用nmcli命令使配置生效或者重啟進程

    nmcli con reload

    nmcli con down 「ID」  ,nmcli con up 「ID」

c、通過ping驗證網路配置

8、主機名和名稱解析

    hostname 查看主機名

    hostnamectl status 查看主機信息

    hostnamectl set-hostname 設置主機名

    靜態主機名儲存在/etc/hostname文件中。名稱解析用於將主機名轉為IP地址,反之亦可,在/etc/hosts中定義。

    可用使用getent hosts your_hostname,利用/etc/hosts來測試主機名解析。

    如果/etc/hosts中沒有,則會查找/etc/ resolv.conf文件。

『貳』 linux socket 連接超時 怎麼解決

今天發現自己的系統存在很嚴重缺陷,當前台關閉的時候後台就無法正常工作,原因很好定位,後台的socket連接超時時間過長,系統默認時間好像是75秒,於是找資料,根據下邊文章中的內容解決了,把超時時間設為5秒後,感覺好多了。看來還有好多東西需要慢慢挖掘阿!

如何設置socket的Connect超時(linux)
[From]http://dev.cbw.com/c/c/200510195601_4292587.shtml
1.首先將標志位設為Non-blocking模式,准備在非阻塞模式下調用connect函數
2.調用connect,正常情況下,因為TCP三次握手需要一些時間;而非阻塞調用只要不能立即完成就會返回錯誤,所以這里會返回EINPROGRESS,表示在建立連接但還沒有完成。
3.在讀套介面描述符集(fd_set rset)和寫套介面描述符集(fd_set wset)中將當前套介面置位(用FD_ZERO()、FD_SET()宏),並設置好超時時間(struct timeval *timeout)
4.調用select( socket, &rset, &wset, NULL, timeout )
返回0表示connect超時
如果你設置的超時時間大於75秒就沒有必要這樣做了,因為內核中對connect有超時限制就是75秒。

[From]http://www.ycgczj.com.cn/34733.html
網路編程中socket的分量我想大家都很清楚了,socket也就是套介面,在套介面編程中,提到超時的概念,我們一下子就能想到3個:發送超時,接收超時,以及select超時(註: select函數並不是只用於套介面的,但是套介面編程中用的比較多),在connect到目標主機的時候,這個超時是不由我們來設置的。不過正常情況下這個超時都很長,並且connect又是一個阻塞方法,一個主機不能連接,等著connect返回還能忍受,你的程序要是要試圖連接多個主機,恐怕遇到多個不能連接的主機的時候,會塞得你受不了的。我也廢話少說,先說說我的方法,如果你覺得你已掌握這種方法,你就不用再看下去了,如果你還不了解,我願意與你分享。本文是已在Linux下的程序為例子,不過拿到Windows中方法也是一樣,無非是換幾個函數名字罷了。
Linux中要給connect設置超時,應該是有兩種方法的。一種是該系統的一些參數,這個方法我不講,因為我講不清楚:P,它也不是編程實現的。另外一種方法就是變相的實現connect的超時,我要講的就是這個方法,原理上是這樣的:
1.建立socket
2.將該socket設置為非阻塞模式
3.調用connect()
4.使用select()檢查該socket描述符是否可寫(注意,是可寫)
5.根據select()返回的結果判斷connect()結果
6.將socket設置為阻塞模式(如果你的程序不需要用阻塞模式的,這步就省了,不過一般情況下都是用阻塞模式的,這樣也容易管理)
如果你對網路編程很熟悉的話,其實我一說出這個過程你就知道怎麼寫你的程序了,下面給出我寫的一段程序,僅供參考。
/******************************
* Time out for connect()
* Write by Kerl W
******************************/
#include <sys/socket.h>
#include <sys/types.h>
#define TIME_OUT_TIME 20 //connect超時時間20秒
int main(int argc , char **argv)
{
………………
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
if(sockfd < 0) exit(1);
struct sockaddr_in serv_addr;
………//以伺服器地址填充結構serv_addr
int error=-1, len;
len = sizeof(int);
timeval tm;
fd_set set;
unsigned long ul = 1;
ioctl(sockfd, FIONBIO, &ul); //設置為非阻塞模式
bool ret = false;
if( connect(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) == -1)
{
tm.tv_set = TIME_OUT_TIME;
tm.tv_uset = 0;
FD_ZERO(&set);
FD_SET(sockfd, &set);
if( select(sockfd+1, NULL, &set, NULL, &tm) > 0)
{
getsockopt(sockfd, SOL_SOCKET, SO_ERROR, &error, (socklen_t *)&len);
if(error == 0) ret = true;
else ret = false;
} else ret = false;
}
else ret = true;
ul = 0;
ioctl(sockfd, FIONBIO, &ul); //設置為阻塞模式
if(!ret)
{
close( sockfd );
fprintf(stderr , "Cannot Connect the server!n");
return;
}
fprintf( stderr , "Connected!n");
//下面還可以進行發包收包操作
……………
}
以上代碼片段,僅供參考,也是為初學者提供一些提示,主要用到的幾個函數,select, ioctl, getsockopt都可以找到相關資料,具體用法我這里就不贅述了,你只需要在linux中輕輕的敲一個man <函數名>就能夠看到它的用法。
此外我需要說明的幾點是,雖然我們用ioctl把套介面設置為非阻塞模式,不過select本身是阻塞的,阻塞的時間就是其超時的時間由調用select 的時候的最後一個參數timeval類型的變數指針指向的timeval結構變數來決定的,timeval結構由一個表示秒數的和一個表示微秒數(long類型)的成員組成,一般我們設置了秒數就行了,把微妙數設為0(註:1秒等於100萬微秒)。而select函數另一個值得一提的參數就是上面我們用到的fd_set類型的變數指針。調用之前,這個變數裡面存了要用select來檢查的描述符,調用之後,針對上面的程序這裡面是可寫的描述符,我們可以用宏FD_ISSET來檢查某個描述符是否在其中。由於我這里只有一個套介面描述符,我就沒有使用FD_ISSET宏來檢查調用select之後這個sockfd是否在set裡面,其實是需要加上這個判斷的。不過我用了getsockopt來檢查,這樣才可以判斷出這個套介面是否是真的連接上了,因為我們只是變相的用select來檢查它是否連接上了,實際上select檢查的是它是否可寫,而對於可寫,是針對以下三種條件任一條件滿足時都表示可寫的:
1)套介面發送緩沖區中的可用控制項位元組數大於等於套介面發送緩沖區低潮限度的當前值,且或者i)套介面已連接,或者ii)套介面不要求連接(UDP方式的)
2)連接的寫這一半關閉。
3)有一個套介面錯誤待處理。
這樣,我們就需要用getsockopt函數來獲取套介面目前的一些信息來判斷是否真的是連接上了,沒有連接上的時候還能給出發生了什麼錯誤,當然我程序中並沒有標出那麼多狀態,只是簡單的表示可連接/不可連接。
下面我來談談對這個程序測試的結果。我針對3種情形做了測試:
1. 目標機器網路正常的情況
可以連接到目標主機,並能成功以阻塞方式進行發包收包作業。
2. 目標機器網路斷開的情況
在等待設置的超時時間(上面的程序中為20秒)後,顯示目標主機不能連接。
3. 程序運行前斷開目標機器網路,超時時間內,恢復目標機器的網路
在恢復目標主機網路連接之前,程序一隻等待,恢復目標主機後,程序顯示連接目標主機成功,並能成功以阻塞方式進行發包收包作業。
以上各種情況的測試結果表明,這種設置connect超時的方法是完全可行的。我自己是把這種設置了超時的connect封裝到了自己的類庫,用在一套監控系統中,到目前為止,運行還算正常。這種編程實現的connect超時比起修改系統參數的那種方法的有點就在於它只用於你的程序之中而不影響系統。

『叄』 linux怎麼配置網路設置(linux怎麼配置網路 連接外網)

1、linux怎麼配置網路。

2、linux怎麼配置網路 連接外網。

3、linux怎麼配置網路地址。

4、linux怎麼配置網路ip。

1."linux怎麼配置網路,為您提供linux怎麼配置網路圖文信息,打開已安裝的虛擬機。

2.在終端窗口中輸入命令Vi/Etetcconfissetvicetsuptscfg-ithg-ith0,然後打開此介面。

3.重啟配置好的網卡,再執行命令/etc/init.d/networkrestart。

4.配置完成後可以使用Ping+需要測試網址來查看是否成功。

『肆』 linux 網路連接超時

linux
其實很簡單
把那個網路連接編輯打開,在有線網路裡面點添加。確認關閉就行了。
然後就會自動連接成功
如果是PPP上網即撥號
那還是在那個地方,在DSL那一個裡面新建一個,再輸入用戶名和密碼保存關閉。再對那個圖標右鍵點你剛才新建的那個連接就行了。

『伍』 linux怎麼配置網路連接

1、首先我們打開XShell工具,點擊頂部的打開選項,

『陸』 LINUX C 進行TCP網路連接,怎樣設置連接超時時間

如果你確定,真的不需要等這么久,或者用戶希望可以隨時中上連接過程,那麼一般是用 非阻塞模式來做的. 看看我的這段連接代碼(節選),可以作為TCP連接的典範:

bool CRemoteLink::Connect()
{
OnDisconnected(); // 如果已經連接,則斷開

if(!m_bUseProxy)
{

m_iConnStatus = SS_CONNECTING; // 正在連接狀態
GNTRACE ("開始連接到遠程伺服器[%s][%ld]...\n", m_strip.c_str(), m_port);

// 建立套接字, 准備連接到伺服器
m_socket = ::socket(AF_INET, SOCK_STREAM, 0);
if (socket < 0) {
if(m_pCallBack)
m_pCallBack->OnSocketError(SE_CREATE, MSG_SE_CREATE);
return false;
}

// 設為非同步操作方式
unsigned long on = 1;
if (::ioctlsocket(m_socket, FIONBIO, &on) < 0) {
::closesocket(m_socket);
if(m_pCallBack)
m_pCallBack->OnSocketError(SE_CREATE, MSG_SE_CREATE);
return false;
}

sockaddr_in addr;
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = inet_addr(m_strip.c_str());
addr.sin_port = htons(m_port);

int rt;
rt = ::connect(m_socket, (sockaddr *) &addr, sizeof(addr));
if (rt == 0) {
OnConnected();
return true;
}

// ==================================================================
timeval to;

// 首先建立連接
fd_set wfds;
fd_set efds;
FD_ZERO(&wfds);
FD_ZERO(&efds);

// test shutdown event each 100ms.
to.tv_sec = 0;
// CONNECT_TIMEOUT;
to.tv_usec = 100000;

int it = 0;
while(!m_meShutdown.Wait(0) && !m_meConnStop.Wait(0))
{
FD_SET(m_socket, &wfds);
FD_SET(m_socket, &efds);
int n = select(m_socket + 1, NULL, &wfds, &efds, &to);

if (n > 0) {
if(FD_ISSET(m_socket, &wfds))
{
OnConnected();
return true;
}
else
{
//int err = ::WSAGetLastError();
//const char* msg = GetLastErrorMessage(err);
GNTRACE ("CRemoteLink::Connect : connection attempt failed!\n");
if(m_pCallBack)
m_pCallBack->OnSocketError(SE_CONN, MSG_SE_CONN);
break;
}
} else if (n < 0) { // Select Error
int err = ::WSAGetLastError();
const char* msg = GetLastErrorMessage(err);
GNTRACE ("CRemoteLink::Connect : Select Error.[%d] - %s\n", err, msg);
if(m_pCallBack)
m_pCallBack->OnSocketError(err, msg);
break;
}
else
{
it += 100;
if(it > 30000) // 連接超時 -- (30S)
{
GNTRACE ("CRemoteLink::Connect : Time out.\n");
if(m_pCallBack)
m_pCallBack->OnSocketError(SE_TIMEOUT, MSG_SE_TIMEOUT);
break;
}
}
}
if(m_meConnStop.Wait(0))
{
GNTRACE("連接過程進行時被取消。\n");
}
}
else
{
// 通過代理伺服器連接

閱讀全文

與為linux設置網路連接網路連接超時時間相關的資料

熱點內容
網路共享中心沒有網卡 瀏覽:513
電腦無法檢測到網路代理 瀏覽:1364
筆記本電腦一天會用多少流量 瀏覽:546
蘋果電腦整機轉移新機 瀏覽:1368
突然無法連接工作網路 瀏覽:1028
聯通網路怎麼設置才好 瀏覽:1213
小區網路電腦怎麼連接路由器 瀏覽:1004
p1108列印機網路共享 瀏覽:1203
怎麼調節台式電腦護眼 瀏覽:664
深圳天虹蘋果電腦 瀏覽:903
網路總是異常斷開 瀏覽:603
中級配置台式電腦 瀏覽:961
中國網路安全的戰士 瀏覽:623
同志網站在哪裡 瀏覽:1403
版觀看完整完結免費手機在線 瀏覽:1449
怎樣切換默認數據網路設置 瀏覽:1099
肯德基無線網無法訪問網路 瀏覽:1275
光纖貓怎麼連接不上網路 瀏覽:1443
神武3手游網路連接 瀏覽:956
局網列印機網路共享 瀏覽:991