色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

使用康文管理Linux設備上的互聯網連接

星星科技指導員 ? 來源:嵌入式計算設計 ? 作者: Harish Jenny ? 2022-10-20 14:50 ? 次閱讀

連接管理器 (ConnMan) 是一個連接管理守護程序 (connmand),用于管理運行 Linux 操作系統的設備內的互聯網連接。它提供低內存消耗,對不斷變化的網絡條件做出快速、一致、同步的反應。

ConnMan具有各種插件,是一個完全模塊化的系統,可以擴展以支持各種有線或無線技術。插件方法允許針對各種用例輕松進行調整和修改。DHCP 和域名解析等配置方法是使用插件實現的。

所有應用程序都應使用 D-Bus 與康曼通信。它與嵌入式Yocto構建系統一起使用,是GENIVI車載信息娛樂規范的一部分。

康文在 GPL v2.0 許可證下分發。英特爾是康曼項目的主要貢獻者。

康曼建筑

康曼內部基礎設施

功能和特性

連接管理器中內置了以下功能:

  • 通用插件基礎架構
  • 設備和網絡抽象(具有基本存儲支持)
  • IPv4、IPv4-LL(鏈路本地)和 DHCP - IPv6、DHCPv6 和 6to4 隧道
  • 高級路由和 DNS 配置
  • 內置 DNS 代理和智能緩存
  • 內置 WISPr 熱點登錄和門戶檢測
  • 時間和時區配置(手動和自動使用 NTP)
  • 代理處理(手動和自動使用 WPAD)
  • 網絡共享支持(USB藍牙和無線網絡接入點模式)
  • 詳細的統計信息處理(家庭和漫游)

可以為網絡支持啟用各種插件:

  • 以太網插件
  • 具有 WEP40/WEP128 和 WPA/WPA2(個人和企業)的無線插件
  • 藍牙插件(使用藍牙Z)
  • 2G/3G/4G 插件(使用網絡)

還具有附加功能的普金斯:

  • 環回接口設置
  • PACrunner 代理處理
  • 策略工具包授權支持

康曼 D-總線接口

D 總線接口

  • 應用程序應使用 D-Bus 與康曼通信。
  • 主入口點通過管理器對象。
  • 管理器對象包含對服務對象的引用(接口)。
  • 其他接口包括 VPN、時鐘、任務、技術、會話、通知、對等、代理和計數器。

管理器 D 總線接口

  • 應用程序入口點是管理器對象
  • 解釋了所有方法和屬性

管理器屬性

檢索所有全局屬性的簡單方法如下所示:

  • 總線 = 數字總線。系統總線()
  • 管理器 = 總線。Interface(bus.get_object(“net.connman”, “/”), “net.connman.Manager”)
  • 屬性 = 管理器。獲取屬性()

更改全局屬性也非常簡單。例如,啟用所謂的脫機模式(AKA 飛行模式)就足以設置該屬性:管理器。SetProperty(“OfflineMode”, dbus.布爾值(1))。

服務接口

高級界面使用戶界面可以輕松訪問網絡詳細信息和用戶選擇的首選項。這是服務列表和接口。ConnMan 維護著一個包含所有可用服務的平面和排序列表。

服務訂單

Servicestates

  • 每個服務的基本狀態都是“空閑”。這意味著此服務目前根本沒有在使用中。它也沒有嘗試連接或執行任何其他操作。
  • “關聯”狀態表示此服務嘗試建立與網絡的低級連接 - 例如,與WiFi接入點關聯/連接。
  • 在“配置”狀態下,服務指示它正在嘗試檢索/配置 IP 設置。
  • “就緒”狀態表示設備已成功連接。這并不意味著它具有默認路由,但基本 IP 操作將成功。
  • 在“斷開連接”狀態下,服務指示它將終止當前連接,并將返回到“空閑”狀態。
  • 此外,“失敗”狀態表示錯誤行為。它類似于“空閑”狀態,因為服務未連接。

服務 D 總線接口

下面介紹如何獲取服務對象:

-properties = manager.GetProperties() -for path in properties["Services"]: service = dbus.Interface(bus.get_object("net.connman", path), "net.connman.Service")

它還包含連接或斷開特定服務的方法。ConnMan 還可以根據他的策略或通過外部事件(如插入以太網電纜)自動連接服務。手動連接(或斷開)特定服務就像告訴它一樣簡單。

connect: service.Connect() or service.Disconnect()

服務屬性

技術接口

基本的設備配置任務由技術接口完成。例如,打開和關閉設備(例如通過RFKILL)應通過技術接口完成。

技術特性

用戶可以通過管理器脫機模式屬性激活脫機(飛行)模式。在離線模式下,包括以太網在內的所有技術都已關閉電源。在脫機模式下,用戶可以通過使用 rfkill 命令或某些便攜式計算機中的 Fn-Fx 組合鍵,通過“技術支持”屬性臨時激活單個技術。

康曼內部

啟動連接

選項:

-c, --config=FILE Load the specified configuration file instead of /usr/local/etc/connman/main.conf -d, --debug=DEBUG Specify debug options to enable -i, --device=DEV Specify networking device or interface -I, --nodevice=DEV Specify networking interface to ignore -p, --plugin=NAME,... Specify plugins to load -P, --noplugin=NAME,... Specify plugins not to load -W, --wifi=NAME Specify driver for WiFi/Supplicant -n, --nodaemon Don't fork daemon to background -r, --nodnsproxy Don't enable DNS Proxy --nobacktrace Don't print out backtrace information

用法示例:

# CONNMAN_SUPPLICANT_DEBUG=1 connmand -n -d &> connman.log #connmand -i wlan0 -I eth0 --nodnsproxy --nodaemon >& connman.log

主配置文件

主要.conf

InputRequestTimeout = 120 (default)---------> input request ( ex. passphrase) timeout BrowserLaunchTimeout = 300 ( default) -----> The request for launching a browser for portal pages BackgroundScanning = true --------------------> option for background scanning FallbackTimeservers = --------------------------> List of fallback timeservers ( used by NTP sync) separated by "," FallbackNameservers = -------------------------> List of fallback nameservers DefaultAutoConnectTechnologies = -----------> List of technologies that are marked autoconnectable by default. PreferredTechnologies = ------------------------> List of preferred technologies from - most preferred one to least preferred NetworkInterfaceBlacklist = vmnet,vboxnet,virbr,ifb,ve-,vb- ---> List of blacklisted network interfaces AllowHostnameUpdates = true -----------------> Allow connman to change the system hostname ( ex. dhcp hostname option) SingleConnectedTechnology = false -----------> Keep only a single connected technology at any time TetheringTechnologies = wifi,bluetooth,gadget PersistentTetheringMode = false --------------> Restore earlier tethering status when returning from offline mode Enable6to4 = false ------------------------------> Automatically enable Anycast 6to4 if possible (not recommended. see RFC6343 ) EnableOnlineCheck = false --------------------> Enable use of http get as on online status check AlwaysConnectedTechnologies = -------------> List of technologies with AutoConnect = true which are always connected regardless of PreferredTechnologies setting

康曼配置文件

康曼使用配置文件來配置現有服務。康曼將在 /var/lib/康曼/ 中尋找其配置文件。配置文件名不得包含字母或數字以外的其他字符,并且必須具有 .config 后綴。

Ex. #cat /var/lib/connman/example.config [global] Name = Example Description = Example network configuration [service_home_ethernet] Type = ethernet IPv4 = 192.168.1.42/255.255.255.0/192.168.1.1 IPv6 = 2001:db8::42/64/2001:db8::1 MAC = 01:02:03:04:05:06 Nameservers = 10.2.3.4,192.168.1.99 SearchDomains = my.home,isp.net Timeservers = 10.172.2.1,ntp.my.isp.net Domain = my.home [service_home_wifi] Type = wifi Name = my_home_wifi Passphrase = secret IPv4 = 192.168.2.2/255.255.255.0/192.168.2.1 MAC = 06:05:04:03:02:01

設置

為用戶經常連接到的網絡自動創建設置和配置文件。

# cat /var/lib/connman/settings [global] OfflineMode=false [WiFi] Enable=true Tethering=false [Bluetooth] Enable=false Tethering=false

配置文件設置按其服務名稱存儲在 /var/lib/connman/ 下的目錄中。VPN設置可以在 /var/lib/康曼-vpn/ 中找到。

編寫插件

基本插件包含通過CONNMAN_PLUGIN_DEFINE的插件描述,以及通過該描述定義的初始化/退出回調。

#include static int example_init(void) { return 0; } static void example_exit(void) { } CONNMAN_PLUGIN_DEFINE(example, "Example plugin", CONNMAN_VERSION, example_init, example_exit)

插件使用技術、網絡和設備以及其他基礎結構與 ConnMan 的核心功能進行交互。以下是技術基礎架構:

ex. bluetooth plugin static struct connman_technology_driver tech_driver = { .name = "bluetooth", .type = CONNMAN_SERVICE_TYPE_BLUETOOTH, .probe = bluetooth_tech_probe, .remove = bluetooth_tech_remove, .set_tethering = bluetooth_tech_set_tethering, };

若要使連接管理器了解新的技術插件,我們需要通過調用connman_technology_driver_register()來注冊其驅動程序。

connman_technology_driver_register(&tech_driver);

設備基礎結構

設備表示給定技術的真實設備。每種技術可能有許多設備。

static struct connman_device_driver device_driver = { .name = "bluetooth", .type = CONNMAN_DEVICE_TYPE_BLUETOOTH, .probe = bluetooth_device_probe, .remove = bluetooth_device_remove, .enable = bluetooth_device_enable, .disable = bluetooth_device_disable, };

要注冊驅動程序:

connman_device_driver_register(&device_driver);

此外,需要為每個插件編寫代碼來處理新設備的檢測;藍牙插件通過為 BlueZ D-Bus 接口注冊觀察程序來實現此目的。一旦出現新的藍牙設備,插件需要通過調用connman_device_create()來通知ConnMan核心。對于藍牙插件,調用將是:

struct connman_device *device; device = connman_device_create("bluetooth", CONNMAN_DEVICE_TYPE_BLUETOOTH)

網絡基礎設施

連接管理器為插件提供了一種方法來處理為每種類型的技術建立/處理連接的細節。對于藍牙插件,需要注冊一個connman_network_driver:

static struct connman_network_driver network_driver = { .name = "bluetooth", .type = CONNMAN_NETWORK_TYPE_BLUETOOTH_PAN, .probe = bluetooth_pan_probe, .remove = bluetooth_pan_remove, .connect = bluetooth_pan_connect, .disconnect = bluetooth_pan_disconnect, };

然后,調用寄存器函數:

connman_network_driver_register(&network_driver);

康曼源文件/基礎架構

初始化函數將在運行主循環之前在 src/main.c 中被調用。

src/util.c - /dev/urandom support src/inotify.c - used by the core (config.c) and the session policy plugin src/technology.c – used for technology interface src/notifier.c – basic notifier infrastructure src/agent.c – agent interface src/service.c – used for service interface src/peer_service.c – p2p peer service API src/peer.c – p2p peer object’s core logic src/provider.c – provider infrastructure src/network.c – network infrastructure used by plug-ins src/config.c – framework for configuration files src/device.c – device infrastructure used by plug-ins src/iptables.c – iptables support (netfilter chains and rules) src/firewall-iptables.c, nftables.c (older firewall.c) – firewall infrastructure. src/nat.c – used for NAT src/tethering.c – tethering infrastructure src/manager.c – Manager interface src/stats.c – used for storing service stats ( mmaped into memory) src/ipconfig.c – IP configuration framework src/rtnl.c – netlink support src/session.c – Allows 3rd party applications to request a network session src/resolver.c – resolver framework src/dhcp.c, dhcpv6.c – dhcp framework src/rfkill.c – rfkill interface support src/machine.c - basic systemd-hostnamed ( machine-type- “chassis”) support

康曼克特

康曼有一個標準的命令行客戶端康曼克特。它可以在2模式下運行:

  • 在命令模式下,命令作為連接命令的參數輸入,就像系統命令一樣。
  • 交互模式是通過鍵入不帶參數的 connmanctl 來啟動的。提示將更改為 connmanctl>以指示它正在等待用戶命令,就像 python 交互模式一樣。

康曼克特示例

示例 1.啟用和禁用無線網絡

$ connmanctl technologies - check for the line that says Powered: True/False. $ connmanctl enable wifi - To power the wifi on. $ connmanctl disable wifi – To power off the wifi.

啟用無線網絡的其他方法可能包括 - IP鏈接設置。康曼將自動處理有線連接。

示例 2.連接到開放接入點

本節中的命令演示如何在命令模式下運行 connmanctl。要掃描網絡,康曼克特爾接受稱為技術的簡單名稱。要掃描附近的 WiFi 網絡:

$ connmanctl scan wifi To list the available networks found after a scan run (example output): $ connmanctl services *AO MyNetwork wifi_dc85de828967_68756773616d_managed_psk OtherNET wifi_dc85de828967_38303944616e69656c73_managed_psk AnotherOne wifi_dc85de828967_3257495245363836_managed_wep FourthNetwork wifi_dc85de828967_4d7572706879_managed_wep AnO6penNetwork wifi_dc85de828967_4d6568657272696e_managed_none $ connmanctl connect wifi_dc85de828967_4d6568657272696e_managed_none

您現在應該已連接到網絡。使用 ip 地址或連接狀態進行檢查。

示例 3.連接到受保護的接入點

對于受保護的接入點,請向 ConnMan 守護程序提供一些信息,至少提供密碼或密碼。

$ connmanctl connmanctl> scan wifi ----- To list services: connmanctl> services connmanctl> agent on --- register the agent to handle user requests. connmanctl> connect wifi_dc85de828967_38303944616e69656c73_managed_psk

代理會要求您提供更多信息,具體取決于您要連接到的網絡類型。代理還將打印有關所需信息的其他數據,如以下示例所示。

Agent RequestInput wifi_dc85de828967_38303944616e69656c73_managed_psk Passphrase = [ Type=psk, Requirement=mandatory ] Passphrase?

提供請求的信息,在此示例中為密碼,然后鍵入:

connmanctl> quit

如果您提供的信息正確無誤,您現在應該已連接到受保護的接入點。

其他康曼克特用法:

技術

各種硬件接口被康文稱為技術。要列出可用技術,請運行:

$ connmanctl technologies

可以通過以下方式打開/關閉技術:

$ connmanctl enable technology_type $ connmanctl disable technology_type

例如,要關閉無線網絡:

$ connmanctl disable wifi

康曼測試腳本

康曼還提供了基本的python腳本(例如測試康曼,列表服務等)。通過這些腳本支持連接,斷開連接,自動連接,服務,掃描,啟用,禁用,脫機模式,狀態等基本操作。

康曼調試

激活調試

我們可以使用 -d 命令行選項在 ConnMan 中激活調試打印。

-d Activate all normal debug prints -d src/service.c This prints debugging info from src/service.c file only -d src/network.c:src/ipconfig.c This activates debug prints in src/network.c and src/ipconfig.c files. -d 'src/n*.c' This would activate debug print from all the C source files starting with letter 'n' in src directory. Note the quotation marks around option, that is to prevent shell expansion. -d '*/n*.c:*/i*.c' Activate debug prints for all C source files starting with letters 'n' or 'i' in any sub-directory.

子組件調試

ConnMan 的某些組件具有激活的環境變量調試打印。如果設置了環境變量,則相應的組件將打印一些額外的調試信息。

可以使用以下環境變量:

  • CONNMAN_DHCP_DEBUG:與 DHCPv4 相關的調試信息
  • CONNMAN_DHCPV6_DEBUG:DHCPv6 相關的調試信息
  • CONNMAN_IPTABLES_DEBUG:使用表時的額外信息
  • CONNMAN_RESOLV_DEBUG:名稱解析程序調試打印。當 ConnMan 解析主機名供自己使用時,將使用這些調試打印。請注意,DNS 代理調試打印不使用此環境變量。為此,可以使用“-d src/dns代理.c”命令行選項。
  • CONNMAN_SUPPLICANT_DEBUG:調試打印以進行連接和wpa_supplicant進程之間的通信。
  • v CONNMAN_WEB_DEBUG:在 Wispr 和 6to4 組件中執行互聯網連接檢查時,調試信息。

例:

CONNMAN_SUPPLICANT_DEBUG=1 src/connmand -n

示例:獲取CONNMAN_IPTABLES_DEBUG日志

確保在內核中啟用了 iptables 支持:

#zcat /proc/config.gz | grep "CONFIG_IP_NF_IPTABLES"

必須在內核中啟用 IPTABLE:

CONFIG_IP_NF_IPTABLES=m or CONFIG_IP_NF_IPTABLES=y

清除所有可測試的過濾器:

# iptables –F

設置以下可測試規則以過濾 ICMP 數據包(輸入、輸出和轉發數據包):

# iptables -t filter -A INPUT -p icmp --icmp-type echo-request -j LOG --log-prefix="filter INPUT:" # iptables -t filter -A INPUT -p icmp --icmp-type echo-reply -j LOG --log-prefix="filter INPUT:“ # iptables -t filter -A OUTPUT -p icmp --icmp-type echo-request -j LOG --log-prefix="filter OUTPUT:“ # iptables -t filter -A OUTPUT -p icmp --icmp-type echo-reply -j LOG --log-prefix="filter OUTPUT:“ # iptables -t filter -A FORWARD -p icmp --icmp-type echo-request -j LOG --log-prefix="filter FORWARD:“ # iptables -t filter -A FORWARD -p icmp --icmp-type echo-reply -j LOG --log-prefix="filter FORWARD:"

導出以下環境變量以啟用康曼的 iptables 調試:

# export CONNMAN_IPTABLES_DEBUG=1

在啟用調試選項的情況下啟動 Connmand 連接管理器:

# /usr/sbin/connmand -d -n -I eth0

每當涉及 ICMP 數據包時,都應顯示康文守護程序消息日志。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • Linux
    +關注

    關注

    87

    文章

    11339

    瀏覽量

    210119
  • 操作系統
    +關注

    關注

    37

    文章

    6882

    瀏覽量

    123582
收藏 人收藏

    評論

    相關推薦

    esp8266已連接到Wifi但無法連接互聯網,為什么?

    首先,我想說對不起,如果我的帖子在錯誤的線程中。在那之后,我想問一個問題,我的 esp12E 已連接到 Wifi,但它無法連接互聯網,即使 wifi 連接
    發表于 07-09 07:11

    聯想將進軍互聯網

    董事成員以及管理架構等問題,均被楊元慶以“這部分信息暫時保密”為由拒絕了。昨晚,記者從聯想集團品牌溝通部了解到,與百視通成立合資公司只是聯想移動互聯戰略數字家庭計劃中的第一步,未來聯想在互聯網電視
    發表于 03-18 10:48

    互聯網電視迅速崛起

    3646元,價格差距為704元。在原有非互聯網電視的價格再加上幾百塊錢,就可以得到像免費看大片這樣的功能,性價比高,這也是廣大消費者選擇互聯網電視的又一個原因。 電視進入到互聯網
    發表于 03-22 11:31

    工業互聯網

    工業互聯網是全球工業系統與高級計算、分析、感應技術以及互聯網連接融合的結果。它通過智能機器 間的連接并最終將人機連接,結合軟件和大數據分析,
    發表于 01-25 09:29

    藍牙4.2標準將支持靈活的互聯網連接

    本帖最后由 冒汗的心情 于 2016-3-4 14:27 編輯 藍牙4.2標準將支持靈活的互聯網連接藍牙技術聯盟去年底推出了藍牙4.2,在藍牙4.2標準下,設備之間的數據傳輸速度提升了約2.5
    發表于 02-26 11:24

    工業互聯網

    斷發展。伴隨著這樣的發展,三種元素逐漸融合,充分體現出工業互聯網之精髓:智能機器:以嶄新的方法將現實世界中的機器、設備、團隊和網絡通過先進的傳感器、控制器和軟件應用程序連接起來。高級分析:使用基于物理
    發表于 04-17 15:56

    技術與互聯網+

    急急急!!!!!!!!!!!請問,如果用單片機做出了一個作品,互聯網+可以怎么用的上我的作品?除了用互聯網賣出去,還可以怎么辦呢
    發表于 07-03 22:53

    硬件與互聯網連接

    請教各位大神我之間是做軟件java開發的現在 覺得未來互聯網是必然發展趨勢,現在 學習了解物聯網技術,我想弄一款可穿戴的智能終端設備,通過GPRS實現跟服務器數據傳遞交互,我現在該怎么做該怎么操作了,該做那些準備看些什么樣的書了
    發表于 05-24 15:52

    關于esp8266連接互聯網問題

    esp8266怎么連接互聯網,以實現遠程通過3G網控制esp8266來控制單片機工作。8266已經工作在AP+STA模式連接上WiFi了。如果通過
    發表于 07-30 22:06

    如何在不連接互聯網的情況下ping通pc、虛擬機Linux和開發板?

    如果不連接互聯網怎么ping通pc、虛擬機Linux和開發板,并實現利用cute文件傳輸,謝謝,新人不太懂
    發表于 10-21 01:35

    什么是產業互聯網

    2018年10月,騰訊宣傳進軍產業互聯網;2019年9月,騰訊完成了史上最大的組織架構調整,新成立云與智慧產業事業群,正式發力產業互聯網;2020年1月,騰訊發布《2020產業安全報告:產業互聯網
    發表于 01-18 11:40

    為什么要提出工業互聯網看了就知道

    模式和商務模式發生變革,而工業互聯網就是承載這三個模式變革的載體,這也是工業互聯網存在和發展的價值之所在。  價值一:改變管理模式  由于歷史和地理的原因,我國工業產業存在著不同的行
    發表于 01-05 16:43

    2021年互聯網將面臨哪些問題以及如何解決?

    持和發展這些網絡。  在管理快速的Internet增長,確保用戶(和事物)的安全以及確保每個人都可以連接到Internet方面,我們面臨許多挑戰。因此,RIPENCC公共政策和互聯網治理經理問,我們將
    發表于 02-23 17:19

    如何搭建適合ULC手機市場的移動互聯網設備

    如何搭建適合ULC手機市場的移動互聯網設備
    發表于 06-01 07:00

    NodeMCU突然無法連接互聯網的原因?

    直到昨天,我的 NodeMCU 還可以非常輕松地連接互聯網。直到我安裝了一個庫從那一刻起,NodeMCU 無法連接互聯網!!!我刪除了庫(從 C:\Users\Pan\Docume
    發表于 02-27 07:11
    主站蜘蛛池模板: 俄罗斯一级毛片aaaa| 成人无码国产AV免费看| 办公室韩国电影免费完整版| 久久噜国产精品拍拍拍拍| 亚洲成av人影院| 国产精品久久久久久久久久影院| 青青热久久综合网伊人 | 欧美尤物射精集锦| 992交通广播| 欧美卡1卡2卡三卡2021精品 | 亚洲日本va中文字幕久久| 国内免费视频成人精品| 亚洲精品无码一区二区三区四虎 | 麻豆第一区MV免费观看网站| 又黄又肉到湿的爽文| 久久久久综合| 97人妻丰满熟妇AV无码| 起碰免费公开97在线视频| 第一福利在线永久视频| 兽交白浆喷水高潮| 国内精品日本久久久久影院 | 亚洲VA天堂VA欧美VA在线| 国产呦精品一区二区三区网站| 亚洲精品中文字幕一二三四区| 久久成人免费观看全部免费| 337p啪啪人体大胆| 日本xxxxxx片免费播放18| 国产精品久久久久久无码专区| 亚洲精品乱码久久久久久中文字幕| 久久99国产精品自在自在| 8X拨牐拨牐X8免费视频8| 青草在线观看视频| 国产人妻人伦精品久久久| 正在播放一区二区| 秋霞午夜理论理论福利无码| 国产AV白丝爆浆在线播放| 亚洲精品成人久久久影院| 美女扒开腿让男生桶免费看动态图 | 亚洲色大成网站www久久九九| 老师的快感电影完整版| babesvideos性欧美|