【linux相識相知】網路屬性配置

来源:http://www.cnblogs.com/liubinsh/archive/2017/09/16/7533412.html
-Advertisement-
Play Games

本次博客介紹了linux操作系統中常用的網路管理工具和相關配置文件。 ...


當我們擁有一個嶄新的電腦的時候,第一步恐怕都是迫不及待的下載各種軟體,看視頻,聽音樂等,這裡的關鍵的一點是要有網路。現在的個人電腦大部分都是windows操作系統的,接入網路網路很簡單,插上網線也許就能上網了,最麻煩不過找到網路和共用中心手動配置一個ip地址、網關地址和dns伺服器就能上網了,當然這都是得益於圖形化界面。但是現在很多的伺服器都是linux操作系統且沒有圖形化的界面,這時候我們就需要瞭解怎樣正確的給linux主機配置網路屬性了,本次博客就來說說以正確的方式打開linux操作系統的網路屬性配置(本次博客基於的發行版和版本:centOS7、centOS6.5)。

 

接入網路的兩種方式

一、手動的指定

1.使用命令

一般是臨時的修改,重啟後失效,如:ifconfig、route、ip addr等。

2.修改配置文件

修改文件配置,永久有效,但是可能不能立即生效,需要重啟服務。

二、動態獲取

如果本地網路中存在DHCP服務,可以動態的獲取到ip地址、網關地址、DNS伺服器地址等。

 

常用的管理和配置命令

一、ifconfig

1.不加任何選項,查看處於活動狀態下的介面,-a選項顯示所有介面,包括inactive狀態的介面:

[root@localhost ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:9F:AA:AD  
          inet addr:192.168.172.136  Bcast:192.168.172.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe9f:aaad/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2168 errors:0 dropped:0 overruns:0 frame:0
          TX packets:404 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:149715 (146.2 KiB)  TX bytes:29251 (28.5 KiB)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
[root@localhost ~]# ifconfig -a
eth0      Link encap:Ethernet  HWaddr 00:0C:29:9F:AA:AD  
          inet addr:192.168.172.136  Bcast:192.168.172.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe9f:aaad/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2223 errors:0 dropped:0 overruns:0 frame:0
          TX packets:425 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:153927 (150.3 KiB)  TX bytes:32473 (31.7 KiB)

eth1      Link encap:Ethernet  HWaddr 00:0C:29:9F:AA:B7  
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
View Code

介面的命名方式:

1.傳統的命令方式:
  乙太網:eth1,eth2...ethn  #centos6較常見的命名方式
  PPP網路:ppp1,ppp2...pppn
2.可預測的命令方案
如果固件或者BIOS為主板上集成的設備提供的索引信息可以用,根據此索引進行命令,例如:eno1,eno2....enon;
如果固件或者BIOS為PCI-E擴展槽上所提供的索引信息可以用,根據此索引進行命令,例如:ens1,ens2...ensn;
如果硬體介面的物理位置信息可用,則根據此信息命令,如enp2s0
如果用戶顯示定義,也可以根據MAC地址命令,例如enx1232131231
3.命名格式的組成
en:乙太網
wl:無線網
ww:廣域網
4.名稱類型
o<index>:集成設備的設備索引號
s<slot>:擴展槽的索引號
x<MAC>:基於MAC地址的命名
p<bus>s<slot>:基於匯流排槽的拓撲結構進行命名
介面命名方式

2. 配置介面ip地址掩碼的兩種方式:

ifconfig INTERFACE IP/MASK [up|down]      #up和down為可選項
ifconfig INTERFACE IP netmask NETMASK [up|down]

舉例:

[root@localhost ~]# ifconfig eth1 192.168.1.1/24 up
[root@localhost ~]# 
[root@localhost ~]# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0C:29:9F:AA:AD  
          inet addr:192.168.172.136  Bcast:192.168.172.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe9f:aaad/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:2392 errors:0 dropped:0 overruns:0 frame:0
          TX packets:510 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:168403 (164.4 KiB)  TX bytes:43303 (42.2 KiB)

eth1      Link encap:Ethernet  HWaddr 00:0C:29:9F:AA:B7  
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe9f:aab7/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:0 (0.0 b)  TX bytes:398 (398.0 b)

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
View Code

3.開啟介面的雜合模式,這裡就不先做太多的說明,後面博客中會說明:

[root@localhost ~]# ifconfig eth1 promisc
[root@localhost ~]# 
[root@localhost ~]# ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 00:0C:29:9F:AA:B7  
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe9f:aab7/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1    #這裡多了一個PROMISC
          RX packets:29 errors:0 dropped:0 overruns:0 frame:0
          TX packets:6 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:2985 (2.9 KiB)  TX bytes:468 (468.0 b)
View Code

4.新增和刪除IPv6地址

ifconfig INTERFACE add addr/prefixlen
ifconfig INTERFACE del addr/prefixlen

舉例:

[root@localhost ~]# ifconfig eth1 add 2001:0:0:12::1/64  #新增一個IPV6地址
[root@localhost ~]# 
[root@localhost ~]# ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 00:0C:29:9F:AA:B7  
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: 2001:0:0:12::1/64 Scope:Global
          inet6 addr: fe80::20c:29ff:fe9f:aab7/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:57 errors:0 dropped:0 overruns:0 frame:0
          TX packets:10 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:6604 (6.4 KiB)  TX bytes:836 (836.0 b)
[root@localhost ~]# ifconfig eth1 del 2001:0:0:12::1/64  #刪除ipv6地址
[root@localhost ~]# 
[root@localhost ~]# ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 00:0C:29:9F:AA:B7  
          inet addr:192.168.1.1  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe9f:aab7/64 Scope:Link
          UP BROADCAST RUNNING PROMISC MULTICAST  MTU:1500  Metric:1
          RX packets:62 errors:0 dropped:0 overruns:0 frame:0
          TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:7468 (7.2 KiB)  TX bytes:1016 (1016.0 b)
View Code

如果在沒有配置ipv6地址的情況下,我們會發現每個介面都有一個開頭為fe80的ipv6地址,這個地址被稱為鏈路本地的地址,其前64為都是固定的格式,後64是位是基於EUI-64生成的,通俗的來說就是基於MAC地址生成的,鏈路本地地址只能用戶本地的通信,如果想要實現上網的功能,就必須要給介面配置一個全局的地址,也就是全球可聚合單播地址,配置的方式就如上,顯示為Global。

可以給介面起別名配置多個IP地址:

[root@localhost ~]# ifconfig ens34:1 192.168.179.130 netmask 255.255.255.0
[root@localhost ~]# 
[root@localhost ~]# ifconfig
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.172.134  netmask 255.255.255.0  broadcast 192.168.172.255
        inet6 fe80::4:ed31:efad:25d0  prefixlen 64  scopeid 0x20<link>
        ether 00:0c:29:db:7f:47  txqueuelen 1000  (Ethernet)
        RX packets 25157  bytes 12826364 (12.2 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 11651  bytes 2175604 (2.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens34: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.179.128  netmask 255.255.255.0  broadcast 192.168.179.255
        ether 00:0c:29:db:7f:51  txqueuelen 1000  (Ethernet)
        RX packets 666  bytes 91944 (89.7 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 220  bytes 29356 (28.6 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

ens34:1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.179.130  netmask 255.255.255.0  broadcast 192.168.179.255
        ether 00:0c:29:db:7f:51  txqueuelen 1000  (Ethernet)
View Code

然後為別名添加配置文件即可,記得DEVICE為別名名稱且BOOTPROTO:不支持動態獲取地址。

註意:執行ifconfig的時候,命令執行後立即生效的,但是重啟後失效!

 

二、route

1.查看路由條目

route -n #用數字表示,不加-n選項,可能會以主機名和其他的符號來顯示地址

舉例:

[root@localhost ~]# route
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.172.0   *               255.255.255.0   U     0      0        0 eth0
link-local      *               255.255.0.0     U     1002   0        0 eth0
default         192.168.172.2   0.0.0.0         UG    0      0        0 eth0
[root@localhost ~]# 
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.172.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
0.0.0.0         192.168.172.2   0.0.0.0         UG    0      0        0 eth0
View Code

2.添加路由條目

route add [-net|-host]  target [netmask Nm]  [gw GW] [[dev] If]

舉例:

[root@localhost ~]# route add -net 100.100.100.0/24  gw 192.168.1.1  #介面可省略
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
100.100.100.0   192.168.1.1     255.255.255.0   UG    0      0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.172.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
0.0.0.0         192.168.172.2   0.0.0.0         UG    0      0        0 eth0
[root@localhost ~]# route add default gw 192.168.1.1 dev eth1  #使用default參數創建預設路由
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
100.100.100.0   192.168.1.1     255.255.255.0   UG    0      0        0 eth1
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.172.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
0.0.0.0         192.168.1.1     0.0.0.0         UG    0      0        0 eth1
0.0.0.0         192.168.172.2   0.0.0.0         UG    0      0        0 eth0
View Code

3.刪除路由

route del [-net|-host] target [gw GW] [netmask Nm] [[dev] If]

舉例:

[root@localhost ~]# route del -net 100.100.100.0/24 
[root@localhost ~]# route del -net 0.0.0.0/0 gw 192.168.1.1  #如果目的IP地址存在多個,可以指定網關地址,避免誤刪
[root@localhost ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
192.168.1.0     0.0.0.0         255.255.255.0   U     0      0        0 eth1
192.168.172.0   0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     1002   0        0 eth0
0.0.0.0         192.168.172.2   0.0.0.0         UG    0      0        0 eth0
View Code

 

三、netstat命令

專門用來顯示命令

1.顯示路由表

netstat -rn
-r:顯示內核路由表
-n:數字格式

舉例:

[root@localhost ~]# netstat -rn
Kernel IP routing table
Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
192.168.1.0     0.0.0.0         255.255.255.0   U         0 0          0 eth1
192.168.172.0   0.0.0.0         255.255.255.0   U         0 0          0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U         0 0          0 eth0
0.0.0.0         192.168.172.2   0.0.0.0         UG        0 0          0 eth0
View Code

2.顯示網路連接

netstat  [--tcp|-t]  [--udp|-u]  [--udplite|-U]  [--sctp|-S]  [--raw|-w]  [--listening|-l]  [--all|-a]  [--numeric|-n]   [--extend|-e[--extend|-e]]  [--program|-p]
-t:TCP的相關連接
-u:UDP相關連接
-w:raw socket相關連接
-l:處於監聽狀態的連接
-a:所有狀態
-n:以數字格式顯示ip和埠
-e:擴展格式
-p:顯示相關進程及PID

常用組合:
-tan -uan -tnl -unl -tunlp

舉例:

[root@localhost ~]# netstat -tan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      
tcp        0     64 192.168.172.136:22          192.168.172.1:60645         ESTABLISHED 
tcp        0      0 :::22                       :::*                        LISTEN      
tcp        0      0 ::1:25                      :::*                        LISTEN      
[root@localhost ~]# netstat -uan
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
udp        0      0 0.0.0.0:68                  0.0.0.0:*                               
[root@localhost ~]# netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      
tcp        0      0 :::22                       :::*                        LISTEN      
tcp        0      0 ::1:25                      :::*                        LISTEN      
[root@localhost ~]# netstat -unl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State      
udp        0      0 0.0.0.0:68                  0.0.0.0:*                               
[root@localhost ~]# netstat -tunlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   
tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1008/sshd           
tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1084/master         
tcp        0      0 :::22                       :::*                        LISTEN      1008/sshd           
tcp        0      0 ::1:25                      :::*                        LISTEN      1084/master         
udp        0      0 0.0.0.0:68                  0.0.0.0:*                               904/dhclient   
View Code

3.顯示介面的統計數據

netstat    {--interfaces|-I|-i}    [iface]   [--all|-a]   [--extend|-e]   [--verbose|-v]   [--program|-p]  [--numeric|-n]
所有介面的信息:netstat -i
指定的介面:netstat -I<INTERFACE>

舉例:

[root@localhost ~]# netstat -i
Kernel Interface table
Iface       MTU Met    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500   0     2288      0      0      0     1099      0      0      0 BMRU
eth1       1500   0        8      0      0      0        6      0      0      0 BMRU
lo        16436   0        0      0      0      0        0      0      0      0 LRU
[root@localhost ~]# netstat -Ieth1
Kernel Interface table
Iface       MTU Met    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth1       1500   0        8      0      0      0        6      0      0      0 BMRU
View Code

 

四、ifup和ifdown

開啟或者關閉介面,通過配置文件來識別介面並完成配置,如果介面沒有配置文件,則不能生效。

ifup INTERFACE
ifdown  INTERFACE

 

五、ip

ip的功能很強大,這裡只做一些常用的用法的介紹,具體可以見man手冊。

NAME:show / manipulate routing, devices, policy routing and tunnels
ip [ OPTIONS ] OBJECT { COMMAND | help }
    OBJECT := { link | addr | route | netns  } #註意,在寫命令的時候,OBJECT可以簡寫,各個OBJECT的子命令也可以簡寫

1. ip link:網路設備管理

ip link set:修改設備的屬性
dev NAME:預設參數,指明要管理的設備,關鍵字dev可以省略;
         {up|down}:開啟或關閉設備
         {multicast on|multicast off}:開啟或關閉多播功能
         {name NAME}:重命名介面,必須先將設備關閉
         netns PID|netnsname:netns為名稱空間,將介面移動到指定的網路名稱空間
ip link show:查看設備的狀態
ip link help:顯示幫助信息

舉例:

[root@localhost ~]# ip link set ens34 down  #關閉ens34
[root@localhost ~]# ip link set ens34 name eth34  #重命名
[root@localhost ~]# 
[root@localhost ~]# ifconfig -a
ens32: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.172.134  n

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 轉載請註明原創出處,謝謝! 最近沒有什麼實戰,準備把JVM知識梳理一遍,先以開發人員的交流來談談jvm這塊的知識以及重要性,依稀記得2、3年前用solr的時候老是經常oom,提到oom大家應該都不陌生,那個時候也並沒有從根本解決oom,由於對jvm不熟悉,只是去百度,到處都是配置jvm參數的,那個時 ...
  • Sql Server 查看存儲過程最後修改時間 select * from sys.procedures order by modify_date desc ...
  • 問題:在存儲過程中使用臨時表時,不Create臨時表就會報錯。 分析了下,總結了臨時表創建方式的區別。 創建臨時表有兩種方法: 方法一 create table #臨時表名 ( 欄位1 約束條件, 欄位2 約束條件, …… ) create table ##臨時表名 ( 欄位1 約束條件, 欄位2 ...
  • 實現方式: 1、將欄位類型設為 TIMESTAMP 2、將預設值設為 CURRENT_TIMESTAMP 舉例應用: 1、MySQL 腳本實現用例 --添加CreateTime 設置預設時間 CURRENT_TIMESTAMP ALTER TABLE `table_name`ADD COLUMN ` ...
  • 1. CHAR 語法: CHAR (length) 其中length的取值範圍為1到255。 超過255則報錯: mysql> create table s3 ( value char(1023) primary key); ERROR 1074 (42000): Column length too ...
  • 技術棧數據流向平臺規模差異化,隔離化YARN: https://baike.baidu.com/item/yarn/16075826?fr=aladdin今天先到這兒,希望對您在系統架構設計與評估,團隊管理, 項目管理, 產品管理,團隊建設 有參考作用 , 您可能感興趣的文章: 互聯網電商購物車架構... ...
  • 1、簡介 crontab用於設置周期性被執行的命令 Linux系統中Linux調動工作分為兩大類: 1、系統執行的工作:系統周期性所要執行的工作,如備份系統數據、清理緩存 2、個人執行的工作:某個用戶定期要做的工作,例如每隔10分鐘檢查郵件伺服器是否有新信,這些工作可由每個用戶自行設置 /etc/c ...
  • 第1章 linux啟動過程 1、開機自檢bios 2、mbr引導 3、GRUB 菜單:選擇不同的內核 4、載入內核 5、運行init進程 6、讀取/etc/inittab運行級別配置文件 7、執行 /etc/rc.d/rc.sysinit 腳本 (系統的初始化腳本)配置主機名,IP地址 8、執行 / ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...