[{"data":1,"prerenderedAt":3106},["ShallowReactive",2],{"wiki-page-/zh-hant/wiki/2024-03-30-linux-jiao-cheng/ch9-qi-ta-cao-zuo":3,"wiki-doc-items-/zh-hant/wiki/2024-03-30-linux-jiao-cheng/ch9-qi-ta-cao-zuo":3037,"language-switcher-data-/zh-hant/wiki/2024-03-30-linux-jiao-cheng/ch9-qi-ta-cao-zuo":3090,"wiki-i18n-paths-/zh-hant/wiki/2024-03-30-linux-jiao-cheng/ch9-qi-ta-cao-zuo":3105},{"id":4,"title":5,"body":6,"canonicalPath":3018,"chapter":3019,"chapterSort":3020,"date":3021,"description":31,"docI18nKey":3022,"docKey":3023,"docRoot":3024,"docTitle":3025,"extension":3026,"i18nKey":3027,"isBlogPost":3028,"isWikiDoc":1003,"isWikiIndex":3028,"layout":3029,"legacyPath":3029,"locale":3030,"localeSlug":3031,"meta":3032,"navigation":1003,"path":3018,"seo":3033,"sourcePath":3034,"sourceStem":3027,"stem":3035,"wikiDepth":38,"__hash__":3036},"content/_i18n/zh-hant/wiki/2024-03-30-Linux教程/ch9-其他操作.md","其他操作",{"type":7,"value":8,"toc":3009},"minimark",[9,13,17,25,186,189,239,242,246,250,256,259,262,265,270,273,276,279,285,288,293,296,299,304,307,312,315,318,323,326,331,334,350,353,356,368,371,380,383,386,395,398,407,410,413,422,425,428,449,452,455,464,469,472,475,484,487,496,499,508,511,520,525,528,536,541,544,553,556,564,569,572,581,584,587,591,594,599,602,607,622,627,632,643,648,654,659,674,679,682,687,692,697,705,710,717,722,733,738,741,744,747,750,755,758,780,785,788,797,802,805,829,832,863,866,871,874,889,894,913,916,919,924,936,941,946,949,954,957,972,975,980,985,989,994,1049,1052,1056,1062,1068,1073,1076,1083,1088,1095,1098,1101,1108,1123,1126,1189,1192,1207,1220,1310,1313,1316,1385,1388,1391,1394,1416,1419,1424,1429,1436,1441,1444,1448,1453,1458,1462,1465,1468,1511,1516,1519,1541,1556,1558,1563,1575,1635,1637,1639,1697,1699,1701,1704,1720,1725,1728,1733,1736,1739,1804,1809,1812,1814,1818,1830,1912,1914,1916,1974,1980,1982,1988,1993,1995,2000,2003,2024,2059,2063,2078,2081,2084,2087,2090,2098,2101,2114,2117,2132,2135,2154,2203,2206,2226,2229,2243,2249,2252,2261,2277,2289,2329,2334,2362,2367,2372,2402,2406,2410,2413,2418,2423,2436,2448,2451,2456,2471,2478,2511,2516,2534,2537,2541,2544,2548,2551,2555,2558,2562,2571,2577,2582,2594,2599,2604,2609,2636,2639,2644,2655,2660,2666,2671,2674,2679,2889,2893,2898,2903,2907,2912,2924,2932,2935,2940,2944,2949,2954,2959,2965,2970,2975,2980,2983,2986,2992,2997,3002,3005],[10,11,12],"h3",{"id":12},"工控機如何連wifi",[14,15,16],"p",{},"當我們工控機從一個環境移動到另一個環境，且新的環境的wifi我們沒有連接過，我們沒有屏幕如何讓工控機連上網呢？",[14,18,19,20,24],{},"進入工控機的硬盤目錄，進入",[21,22,23],"code",{},"/etc/netplan/","，底下有很多yaml,找到一個最符合下方格式的yaml:",[26,27,32],"pre",{"className":28,"code":29,"language":30,"meta":31,"style":31},"language-YAML shiki shiki-themes github-light github-dark","network: \n  version: 2 \n  wifis: \n    NM-6f414fe0-2658-48ff-89ee-c7981b87bc96: \n      renderer: NetworkManager \n      match: \n        name: \"wlan0\" \n      dhcp4: true \n      dhcp6: true \n      access-points: \n        \"EMIS_Vinci_Robocon_5G\": \n          auth: \n            key-management: \"psk\" \n            password: \"vinci666\" \n          networkmanager: \n            uuid: \"6f414fe0-2658-48ff-89ee-c7981b87bc96\" \n            name: \"EMIS_Vinci_Robocon_5G\" \n            passthrough: \n              wifi-security.auth-alg: \"open\" \n              ipv6.addr-gen-mode: \"default\" \n              ipv6.ip6-privacy: \"-1\" \n              proxy._: \"\" \n      networkmanager: \n        uuid: \"6f414fe0-2658-48ff-89ee-c7981b87bc96\" \n        name: \"EMIS_Vinci_Robocon_5G\"\n\n","YAML","",[21,33,34,42,48,54,60,66,72,78,84,90,96,102,108,114,120,126,132,138,144,150,156,162,168,174,180],{"__ignoreMap":31},[35,36,39],"span",{"class":37,"line":38},"line",1,[35,40,41],{},"network: \n",[35,43,45],{"class":37,"line":44},2,[35,46,47],{},"  version: 2 \n",[35,49,51],{"class":37,"line":50},3,[35,52,53],{},"  wifis: \n",[35,55,57],{"class":37,"line":56},4,[35,58,59],{},"    NM-6f414fe0-2658-48ff-89ee-c7981b87bc96: \n",[35,61,63],{"class":37,"line":62},5,[35,64,65],{},"      renderer: NetworkManager \n",[35,67,69],{"class":37,"line":68},6,[35,70,71],{},"      match: \n",[35,73,75],{"class":37,"line":74},7,[35,76,77],{},"        name: \"wlan0\" \n",[35,79,81],{"class":37,"line":80},8,[35,82,83],{},"      dhcp4: true \n",[35,85,87],{"class":37,"line":86},9,[35,88,89],{},"      dhcp6: true \n",[35,91,93],{"class":37,"line":92},10,[35,94,95],{},"      access-points: \n",[35,97,99],{"class":37,"line":98},11,[35,100,101],{},"        \"EMIS_Vinci_Robocon_5G\": \n",[35,103,105],{"class":37,"line":104},12,[35,106,107],{},"          auth: \n",[35,109,111],{"class":37,"line":110},13,[35,112,113],{},"            key-management: \"psk\" \n",[35,115,117],{"class":37,"line":116},14,[35,118,119],{},"            password: \"vinci666\" \n",[35,121,123],{"class":37,"line":122},15,[35,124,125],{},"          networkmanager: \n",[35,127,129],{"class":37,"line":128},16,[35,130,131],{},"            uuid: \"6f414fe0-2658-48ff-89ee-c7981b87bc96\" \n",[35,133,135],{"class":37,"line":134},17,[35,136,137],{},"            name: \"EMIS_Vinci_Robocon_5G\" \n",[35,139,141],{"class":37,"line":140},18,[35,142,143],{},"            passthrough: \n",[35,145,147],{"class":37,"line":146},19,[35,148,149],{},"              wifi-security.auth-alg: \"open\" \n",[35,151,153],{"class":37,"line":152},20,[35,154,155],{},"              ipv6.addr-gen-mode: \"default\" \n",[35,157,159],{"class":37,"line":158},21,[35,160,161],{},"              ipv6.ip6-privacy: \"-1\" \n",[35,163,165],{"class":37,"line":164},22,[35,166,167],{},"              proxy._: \"\" \n",[35,169,171],{"class":37,"line":170},23,[35,172,173],{},"      networkmanager: \n",[35,175,177],{"class":37,"line":176},24,[35,178,179],{},"        uuid: \"6f414fe0-2658-48ff-89ee-c7981b87bc96\" \n",[35,181,183],{"class":37,"line":182},25,[35,184,185],{},"        name: \"EMIS_Vinci_Robocon_5G\"\n",[14,187,188],{},"將其改爲新wifi的名和密碼：",[26,190,192],{"className":28,"code":191,"language":30,"meta":31,"style":31},"network:\n  version: 2\n  wifis:\n    wlan0:\n      dhcp4: true\n      dhcp6: true\n      access-points:\n        \"EMIS_Vinci_Robocon_5G\":\n          password: \"vinci666\"\n\n",[21,193,194,199,204,209,214,219,224,229,234],{"__ignoreMap":31},[35,195,196],{"class":37,"line":38},[35,197,198],{},"network:\n",[35,200,201],{"class":37,"line":44},[35,202,203],{},"  version: 2\n",[35,205,206],{"class":37,"line":50},[35,207,208],{},"  wifis:\n",[35,210,211],{"class":37,"line":56},[35,212,213],{},"    wlan0:\n",[35,215,216],{"class":37,"line":62},[35,217,218],{},"      dhcp4: true\n",[35,220,221],{"class":37,"line":68},[35,222,223],{},"      dhcp6: true\n",[35,225,226],{"class":37,"line":74},[35,227,228],{},"      access-points:\n",[35,230,231],{"class":37,"line":80},[35,232,233],{},"        \"EMIS_Vinci_Robocon_5G\":\n",[35,235,236],{"class":37,"line":86},[35,237,238],{},"          password: \"vinci666\"\n",[14,240,241],{},"工控機開機即可連上網。",[10,243,245],{"id":244},"ssh遠程開發","SSH遠程開發",[247,248,249],"h4",{"id":249},"環境準備",[14,251,252],{},[253,254,255],"strong",{},"1.硬件準備",[14,257,258],{},"首先要有一臺工控機（X86小型電腦，專業工控機，樹莓派等等）。",[14,260,261],{},"控制系統的硬件載體是具有多樣性的，常用的多是基於ARM、x86等架構的處理器，比如：PC、工控機、樹莓派、NVIDIA Jetson...。不同的處理器都存在一定的優缺點，PC和工控機，處理器性能強大，但是功耗高、體積大、靈活性差，嵌入式系統則反之。對於我們而言，可以根據機器人平臺的電氣、載重、空間以及用途等諸多要素自主選擇合適的控制系統。",[14,263,264],{},"無論選用何種處理器，只要是要進行機器人的開發，安裝了ROS或者ROS2，那麼對於開發人員而言，在使用上，沒有任何本質的區別，或者換言之，作爲軟件工程師，部分場景下無需關注於硬件的選型。",[14,266,267],{},[253,268,269],{},"2.設置固定IP",[14,271,272],{},"遠程連接時，不管使用何種工具，需要根據IP地址定位到被連接的主機，再通過賬號和密碼登錄該主機，因此，我們需要先獲取該IP地址。並且每次連接時，都需要使用到IP，爲了保證連接的便利性和穩定性，最好將被連接主機的IP地址設置爲固定IP，具體操作如下。",[14,274,275],{},"1.進入設置界面",[14,277,278],{},"啓動被連接的主機（啓動時需要連接顯示器或使用HDMI採集卡，並且配置完SSH遠程訪問之後，可以不再使用顯示器或HDMI採集卡），並進入設置界面。",[14,280,281],{},[282,283],"img",{"alt":31,"src":284},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/image332.webp",[14,286,287],{},"2.配置所連接的網絡",[14,289,290],{},[282,291],{"alt":31,"src":292},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/image333.webp",[14,294,295],{},"3.設置固定IP",[14,297,298],{},"查看當前IP地址。",[14,300,301],{},[282,302],{"alt":31,"src":303},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/image334.webp",[14,305,306],{},"設置固定IP。",[14,308,309],{},[282,310],{"alt":31,"src":311},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/image335.webp",[14,313,314],{},"至此，IP配置完畢。",[247,316,317],{"id":317},"環境搭建",[14,319,320],{},[253,321,322],{},"概念",[14,324,325],{},"SSH（Secure Shell）是一種通用的、功能強大的、基於軟件的網絡安全解決方案。計算機每次向網絡發送數據時，SSH都會自動對其進行加密。數據到達目的地時，SSH自動對加密數據進行解密。整個過程都是透明的，使用OpenSSH工具將會增進你的系統安全性。SSH安裝容易、使用簡單。",[14,327,328],{},[253,329,330],{},"實現",[14,332,333],{},"SSH實現架構上分爲客戶端和服務器端兩大部分，客戶端是數據的發送方，服務端是數據的接收方，當前場景下，我們需要從本地主機發送數據到遠程主機，那麼本地主機需要安裝並啓動SSH客戶端，而遠程主機則需要安裝並啓動SSH服務端，整個實現具體流程如下：",[335,336,337,341,344,347],"ol",{},[338,339,340],"li",{},"本地主機安裝SSH客戶端，遠程主機安裝SSH服務端；",[338,342,343],{},"遠程主機啓動SSH服務；",[338,345,346],{},"本地主機登陸遠程主機；",[338,348,349],{},"實現數據傳輸。",[14,351,352],{},"1.安裝SSH客戶端與服務端",[14,354,355],{},"默認情況下，Ubuntu系統已經安裝了SSH客戶端，因此只需要在遠程主機安裝SSH服務端即可，安裝命令如下：",[26,357,362],{"className":358,"code":359,"language":360,"meta":361,"style":31},"language-Plain shiki shiki-themes github-light github-dark"," sudo apt install openssh-server\n","Plain","Text",[21,363,364],{"__ignoreMap":31},[35,365,366],{"class":37,"line":38},[35,367,359],{},[14,369,370],{},"如果SSH客戶端需要自行安裝，那麼調用如下命令:",[26,372,374],{"className":358,"code":373,"language":360,"meta":361,"style":31},"sudo apt install openssh-client\n",[21,375,376],{"__ignoreMap":31},[35,377,378],{"class":37,"line":38},[35,379,373],{},[14,381,382],{},"2.遠程主機啓動SSH服務",[14,384,385],{},"遠程主機啓動 ssh 服務命令如下：",[26,387,389],{"className":358,"code":388,"language":360,"meta":361,"style":31},"sudo /etc/init.d/ssh start\n",[21,390,391],{"__ignoreMap":31},[35,392,393],{"class":37,"line":38},[35,394,388],{},[14,396,397],{},"啓動後可使用如下命令查看服務是否正常運行：",[26,399,401],{"className":358,"code":400,"language":360,"meta":361,"style":31},"ps -e | grep ssh\n",[21,402,403],{"__ignoreMap":31},[35,404,405],{"class":37,"line":38},[35,406,400],{},[14,408,409],{},"如果啓動成功，會包含 sshd 程序。",[14,411,412],{},"以後需要頻繁的使用ssh遠程登錄，爲了簡化實現，可以將遠程主機的ssh服務設置爲開機自啓動，命令如下：",[26,414,416],{"className":358,"code":415,"language":360,"meta":361,"style":31},"sudo systemctl enable ssh\n",[21,417,418],{"__ignoreMap":31},[35,419,420],{"class":37,"line":38},[35,421,415],{},[14,423,424],{},"3.本地遠程登錄",[14,426,427],{},"登錄遠程主機可以調用如下命令:",[26,429,433],{"className":430,"code":431,"language":432,"meta":31,"style":31},"language-bash shiki shiki-themes github-light github-dark","ssh -X 用户名@ip地址\n","bash",[21,434,435],{"__ignoreMap":31},[35,436,437,441,445],{"class":37,"line":38},[35,438,440],{"class":439},"sScJk","ssh",[35,442,444],{"class":443},"sj4cs"," -X",[35,446,448],{"class":447},"sZZnC"," 用户名@ip地址\n",[14,450,451],{},"然後根據提示，錄入登陸密碼，即可成功登錄。",[14,453,454],{},"如果退出，可以調用exit命令：",[26,456,458],{"className":358,"code":457,"language":360,"meta":361,"style":31},"exit\n",[21,459,460],{"__ignoreMap":31},[35,461,462],{"class":37,"line":38},[35,463,457],{},[14,465,466],{},[253,467,468],{},"4.實現數據傳輸",[14,470,471],{},"通過SSH在本地主機只需調用相關指令，便可方便的實現與遠程主機的數據上傳或下載，指令格式如下所示：",[14,473,474],{},"上傳文件指令格式如下：",[26,476,478],{"className":358,"code":477,"language":360,"meta":361,"style":31},"scp 本地文件路径 账号@ip:路径\n",[21,479,480],{"__ignoreMap":31},[35,481,482],{"class":37,"line":38},[35,483,477],{},[14,485,486],{},"上傳文件夾指令格式如下：",[26,488,490],{"className":358,"code":489,"language":360,"meta":361,"style":31},"scp -r 本地文件夹路径 账号@ip:路径\n",[21,491,492],{"__ignoreMap":31},[35,493,494],{"class":37,"line":38},[35,495,489],{},[14,497,498],{},"下載文件指令格式如下：",[26,500,502],{"className":358,"code":501,"language":360,"meta":361,"style":31},"scp 账号@ip:路径 本地文件夹路径\n",[21,503,504],{"__ignoreMap":31},[35,505,506],{"class":37,"line":38},[35,507,501],{},[14,509,510],{},"下載文件夾指令格式如下：",[26,512,514],{"className":358,"code":513,"language":360,"meta":361,"style":31},"scp -r 账号@ip:路径 本地文件夹路径\n",[21,515,516],{"__ignoreMap":31},[35,517,518],{"class":37,"line":38},[35,519,513],{},[14,521,522],{},[253,523,524],{},"優化",[14,526,527],{},"每次遠程登錄時，都需要輸入密碼，使用不方便，可以藉助密鑰簡化登錄過程，實現免密登錄，提高操作效率。實現思想是：生成一對公鑰私鑰，私鑰存儲在本地，公鑰上傳至服務器，每次登錄時，本地直接上傳私鑰到服務器，服務器有匹配的公鑰就認爲是合法用戶，直接創建SSH連接即可。具體實現步驟只有兩步：",[335,529,530,533],{},[338,531,532],{},"本地生成密鑰對；",[338,534,535],{},"將公鑰上傳至遠程主機。",[14,537,538],{},[253,539,540],{},"1.生成密鑰對",[14,542,543],{},"本地客戶端生成公私鑰：（一路回車默認即可）",[26,545,547],{"className":358,"code":546,"language":360,"meta":361,"style":31},"ssh-keygen\n",[21,548,549],{"__ignoreMap":31},[35,550,551],{"class":37,"line":38},[35,552,546],{},[14,554,555],{},"上面這個命令會在用戶目錄.ssh文件夾下創建公私鑰：",[335,557,558,561],{},[338,559,560],{},"id_rsa （私鑰）；",[338,562,563],{},"id_rsa.pub (公鑰)。",[14,565,566],{},[253,567,568],{},"2.公鑰上傳",[14,570,571],{},"上傳指令如下：",[26,573,575],{"className":358,"code":574,"language":360,"meta":361,"style":31},"ssh-copy-id -i ~/.ssh/id_rsa.pub 账号@ip\n",[21,576,577],{"__ignoreMap":31},[35,578,579],{"class":37,"line":38},[35,580,574],{},[14,582,583],{},"上面這條指令是將本地公鑰上傳到遠程主機的ssh目錄下，該目錄下有文件authorized_keys保存了公鑰內容。",[14,585,586],{},"以後再遠程登錄就無需錄入密碼了。",[247,588,590],{"id":589},"使用vscode優化","使用VScode優化",[14,592,593],{},"上一節，我們介紹了ssh遠程連接的使用，但是如果只是純粹使用ssh也存在一些不足，比如：編輯文件內容時，需要使用vi編輯器，且在一個終端內，無法同時編輯多個文件。本節將介紹一更爲實用的功能——VSCode結合插件實現遠程開發，這使我們可以以圖形化的方式實現遠程開發，比ssh的使用更方便快捷，可以大大的提高程序開發效率。",[14,595,596],{},[253,597,598],{},"1.準備工作",[14,600,601],{},"VScode遠程開發依賴於ssh，請首先按照上一節內容配置ssh遠程連接。",[14,603,604],{},[253,605,606],{},"2.爲VScode安裝遠程開發插件",[14,608,609,610,613,614,617,618,621],{},"啓動VScode，首先點擊側邊欄的擴展按鈕，然後在",[21,611,612],{},"扩展：商店","的搜索欄輸入",[21,615,616],{},"Remote Development","並點擊同名插件，最後在右側顯示區中點擊",[21,619,620],{},"安装","。",[14,623,624],{},[282,625],{"alt":31,"src":626},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/image336.webp",[14,628,629],{},[253,630,631],{},"3.配置遠程連接",[14,633,634,635,638,639,642],{},"步驟1：使用快捷鍵",[21,636,637],{},"ctrl + shift + p","打開命令輸入窗口，並輸入",[21,640,641],{},"Remote-SSH:Connect to Host...","，彈出列表中選擇與之同名的選項。",[14,644,645],{},[282,646],{"alt":31,"src":647},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/image337.webp",[14,649,650,651,621],{},"步驟2：步驟1完成將彈出一個新的命令窗口如下，選擇下拉列表中的 ",[21,652,653],{},"Add New SSH Host",[14,655,656],{},[282,657],{"alt":31,"src":658},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/image338.webp",[14,660,661,662,665,666,669,670,673],{},"步驟3：步驟2完成又將彈出一個新的命令窗口，在其中輸入：",[21,663,664],{},"ssh -X ubuntu@192.168.43.164","，其中，",[21,667,668],{},"ubuntu","需要替換爲你的登錄用戶名，",[21,671,672],{},"192.18.43.164"," 則替換爲被遠程連接主機的ip地址。",[14,675,676],{},[282,677],{"alt":31,"src":678},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/image339.webp",[14,680,681],{},"步驟4：選擇步驟3完成後的彈窗列表中的第一個選項(或直接回車)，即可完成配置，配置成功後會有提示信息。",[14,683,684],{},[282,685],{"alt":31,"src":686},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/image340.webp",[14,688,689],{},[282,690],{"alt":31,"src":691},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/image341.webp",[14,693,694],{},[253,695,696],{},"4.使用",[14,698,699,700,638,702,704],{},"步驟1：繼續使用快捷鍵",[21,701,637],{},[21,703,641],{},"，此時列表中將顯示步驟3中配置的ip地址，直接選擇，選擇後，VScode將打開一個新的窗口。",[14,706,707],{},[282,708],{"alt":31,"src":709},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/image342.webp",[14,711,712,713,716],{},"或者，也可以點擊側邊欄的",[21,714,715],{},"远程资源管理器","，在彈出的服務器列表中選擇要連接的服務器，並右擊，選擇在本窗口或新窗口中實現遠程連接。",[14,718,719],{},[282,720],{"alt":31,"src":721},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/image343.webp",[14,723,724,725,728,729,732],{},"步驟2：選擇菜單欄的",[21,726,727],{},"文件","下的",[21,730,731],{},"打开文件夹","，在彈窗列表中選擇需要打開的文件夾並點擊確定即可。",[14,734,735],{},[282,736],{"alt":31,"src":737},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/image344.webp",[14,739,740],{},"最終，我們就可以像操作本地文件一樣實現遠程開發了。",[10,742,743],{"id":743},"遠程桌面",[14,745,746],{},"因爲用X11轉發效率太低太低，所以還是要選用遠程訪問桌面的形式來看Rviz2和Gazebo等等（如果有需求的話）",[14,748,749],{},"我們選擇使用VNC來看。",[335,751,752],{},[338,753,754],{},"安裝VNC服務器：",[14,756,757],{},"這裏以TigerVNC爲例進行安裝：",[26,759,761],{"className":430,"code":760,"language":432,"meta":31,"style":31},"sudo apt install tigervnc-standalone-server tigervnc-common\n",[21,762,763],{"__ignoreMap":31},[35,764,765,768,771,774,777],{"class":37,"line":38},[35,766,767],{"class":439},"sudo",[35,769,770],{"class":447}," apt",[35,772,773],{"class":447}," install",[35,775,776],{"class":447}," tigervnc-standalone-server",[35,778,779],{"class":447}," tigervnc-common\n",[335,781,782],{"start":44},[338,783,784],{},"設置VNC密碼：",[14,786,787],{},"爲VNC用戶設置密碼，運行以下命令：",[26,789,791],{"className":430,"code":790,"language":432,"meta":31,"style":31},"vncpasswd\n",[21,792,793],{"__ignoreMap":31},[35,794,795],{"class":37,"line":38},[35,796,790],{"class":439},[335,798,799],{"start":50},[338,800,801],{},"配置VNC啓動腳本:",[14,803,804],{},"創建VNC配置文件，在用戶家目錄內的.vnc文件夾中創建啓動文件：",[26,806,808],{"className":430,"code":807,"language":432,"meta":31,"style":31},"mkdir -p ~/.vnc\nnano ~/.vnc/xstartup\n",[21,809,810,821],{"__ignoreMap":31},[35,811,812,815,818],{"class":37,"line":38},[35,813,814],{"class":439},"mkdir",[35,816,817],{"class":443}," -p",[35,819,820],{"class":447}," ~/.vnc\n",[35,822,823,826],{"class":37,"line":44},[35,824,825],{"class":439},"nano",[35,827,828],{"class":447}," ~/.vnc/xstartup\n",[14,830,831],{},"在打開的編輯器裏面輸入以下內容（以GNOME爲例）：",[26,833,835],{"className":430,"code":834,"language":432,"meta":31,"style":31},"#!/bin/sh\nunset SESSION_MANAGER\nunset DBUS_SESSION_BUS_ADDRESS\ngnome-session\n",[21,836,837,843,851,858],{"__ignoreMap":31},[35,838,839],{"class":37,"line":38},[35,840,842],{"class":841},"sJ8bj","#!/bin/sh\n",[35,844,845,848],{"class":37,"line":44},[35,846,847],{"class":443},"unset",[35,849,850],{"class":447}," SESSION_MANAGER\n",[35,852,853,855],{"class":37,"line":50},[35,854,847],{"class":443},[35,856,857],{"class":447}," DBUS_SESSION_BUS_ADDRESS\n",[35,859,860],{"class":37,"line":56},[35,861,862],{"class":439},"gnome-session\n",[14,864,865],{},"保存並退出（在nano中按Ctrl + O保存，然後按Ctrl + X退出）。",[335,867,868],{"start":56},[338,869,870],{},"給予執行權限：",[14,872,873],{},"爲xstartup文件設置執行權限：",[26,875,877],{"className":430,"code":876,"language":432,"meta":31,"style":31},"chmod +x ~/.vnc/xstartup\n",[21,878,879],{"__ignoreMap":31},[35,880,881,884,887],{"class":37,"line":38},[35,882,883],{"class":439},"chmod",[35,885,886],{"class":447}," +x",[35,888,828],{"class":447},[335,890,891],{"start":62},[338,892,893],{},"啓動VNC服務器：",[26,895,897],{"className":430,"code":896,"language":432,"meta":31,"style":31},"vncserver -geometry 1920x1080 -localhost=0\n",[21,898,899],{"__ignoreMap":31},[35,900,901,904,907,910],{"class":37,"line":38},[35,902,903],{"class":439},"vncserver",[35,905,906],{"class":443}," -geometry",[35,908,909],{"class":447}," 1920x1080",[35,911,912],{"class":443}," -localhost=0\n",[14,914,915],{},"geometry 選項指定窗口大小，localhost 選項設爲 0 以開放連接。(設爲1是隻允許本地連接)",[14,917,918],{},"你將看到類似於:1的輸出，這表示VNC會話的顯示編號。例如，如果輸出爲:1，則VNC監聽的端口爲5901（5900 + 顯示編號）。",[335,920,921],{"start":68},[338,922,923],{},"查看已開啓的VNC服務器：",[26,925,927],{"className":430,"code":926,"language":432,"meta":31,"style":31},"vncserver -list\n",[21,928,929],{"__ignoreMap":31},[35,930,931,933],{"class":37,"line":38},[35,932,903],{"class":439},[35,934,935],{"class":443}," -list\n",[14,937,938],{},[282,939],{"alt":31,"src":940},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/image345.webp",[335,942,943],{"start":74},[338,944,945],{},"連接到VNC服務器：",[14,947,948],{},"使用VNC客戶端（如vncviewer）連接到VNC服務器，輸入你的服務器IP和端口。例如，如果服務器IP爲192.168.31.10，且顯示編號爲1，你應該連接到192.168.31.10:1，或者直接輸入192.168.31.10:5901。",[335,950,951],{"start":80},[338,952,953],{},"停止VNC服務器：",[14,955,956],{},"如果需要停止VNC服務器，可以使用以下命令：",[26,958,960],{"className":430,"code":959,"language":432,"meta":31,"style":31},"vncserver -kill :1\n",[21,961,962],{"__ignoreMap":31},[35,963,964,966,969],{"class":37,"line":38},[35,965,903],{"class":439},[35,967,968],{"class":443}," -kill",[35,970,971],{"class":447}," :1\n",[14,973,974],{},"將:1替換爲你實際使用的顯示編號。",[14,976,977],{},[282,978],{"alt":31,"src":979},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/image346.webp",[14,981,982],{},[282,983],{"alt":31,"src":984},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/image347.webp",[10,986,988],{"id":987},"usb端口設置","USB端口設置",[14,990,991],{},[253,992,993],{},"首先先配置好權限",[26,995,997],{"className":430,"code":996,"language":432,"meta":31,"style":31},"\n# 将用户权限提高\nsudo usermod -aG dialout $USER\nnewgrp dialout\n\n# 查看下面命令是否输出dialout（若输出才正常）\ngroups\n",[21,998,999,1005,1010,1027,1035,1039,1044],{"__ignoreMap":31},[35,1000,1001],{"class":37,"line":38},[35,1002,1004],{"emptyLinePlaceholder":1003},true,"\n",[35,1006,1007],{"class":37,"line":44},[35,1008,1009],{"class":841},"# 将用户权限提高\n",[35,1011,1012,1014,1017,1020,1023],{"class":37,"line":50},[35,1013,767],{"class":439},[35,1015,1016],{"class":447}," usermod",[35,1018,1019],{"class":443}," -aG",[35,1021,1022],{"class":447}," dialout",[35,1024,1026],{"class":1025},"sVt8B"," $USER\n",[35,1028,1029,1032],{"class":37,"line":56},[35,1030,1031],{"class":439},"newgrp",[35,1033,1034],{"class":447}," dialout\n",[35,1036,1037],{"class":37,"line":62},[35,1038,1004],{"emptyLinePlaceholder":1003},[35,1040,1041],{"class":37,"line":68},[35,1042,1043],{"class":841},"# 查看下面命令是否输出dialout（若输出才正常）\n",[35,1045,1046],{"class":37,"line":74},[35,1047,1048],{"class":439},"groups\n",[14,1050,1051],{},"因爲我們插拔USB設備，他的端口號可能會一直變，所以我們要給他的tty起一個固定的別名。",[247,1053,1055],{"id":1054},"根據usb設備綁定端口多個不同設備","根據USB設備綁定端口(多個不同設備)",[14,1057,1058,1061],{},[253,1059,1060],{},"需求："," Ubuntu系統中現接入雷達和智能小車，請爲二者綁定端口。",[14,1063,1064,1067],{},[253,1065,1066],{},"實現原理："," 可以通過USB設備本身的“標識”實現端口綁定。",[14,1069,1070],{},[253,1071,1072],{},"流程如下：",[14,1074,1075],{},"（1）.查找設備idVendor和idProduct",[14,1077,1078,1079,1082],{},"接入兩個USB設備，在終端調用指令",[21,1080,1081],{},"lsusb","查看顯示系統中以及連接到系統的USB設備信息。",[14,1084,1085],{},[282,1086],{"alt":31,"src":1087},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/image348.webp",[14,1089,1090,1091,1094],{},"如上圖所示，紅色方框內數據爲USB設備，ID後面的",[21,1092,1093],{},"1a86:7523","分別爲USB的idVendor和idProduct（兩個參數之間使用”：“分隔）。",[14,1096,1097],{},"另外：可以通過重新插拔比較的方式確定哪些數據對應接入的USB設備。",[14,1099,1100],{},"（2）.編寫映射規則",[14,1102,1103,1104,1107],{},"在",[21,1105,1106],{},"/etc/udev/rules.d","目錄下新建文件xxx.rules（文件名自定義）",[26,1109,1111],{"className":430,"code":1110,"language":432,"meta":31,"style":31},"sudo vim /etc/udev/rules.d/xxx.rules\n",[21,1112,1113],{"__ignoreMap":31},[35,1114,1115,1117,1120],{"class":37,"line":38},[35,1116,767],{"class":439},[35,1118,1119],{"class":447}," vim",[35,1121,1122],{"class":447}," /etc/udev/rules.d/xxx.rules\n",[14,1124,1125],{},"輸入如下內容：",[26,1127,1129],{"className":430,"code":1128,"language":432,"meta":31,"style":31},"KERNEL==\"ttyUSB*\", ATTRS{idVendor}==\"10c4\", ATTRS{idProduct}==\"ea60\", MODE:=\"0777\", SYMLINK+=\"mylidar\"\nKERNEL==\"ttyUSB*\", ATTRS{idVendor}==\"1a86\", ATTRS{idProduct}==\"7523\", MODE:=\"0777\", SYMLINK+=\"mycar\"\n",[21,1130,1131,1164],{"__ignoreMap":31},[35,1132,1133,1136,1140,1143,1146,1149,1152,1155,1158,1161],{"class":37,"line":38},[35,1134,1135],{"class":1025},"KERNEL",[35,1137,1139],{"class":1138},"szBVR","=",[35,1141,1142],{"class":447},"=\"ttyUSB*\",",[35,1144,1145],{"class":439}," ATTRS",[35,1147,1148],{"class":447},"{idVendor}==",[35,1150,1151],{"class":439},"\"10c4\"",[35,1153,1154],{"class":439},",",[35,1156,1157],{"class":447}," ATTRS{idProduct}==\"ea60\",",[35,1159,1160],{"class":447}," MODE:=\"0777\",",[35,1162,1163],{"class":447}," SYMLINK+=\"mylidar\"\n",[35,1165,1166,1168,1170,1172,1174,1176,1179,1181,1184,1186],{"class":37,"line":44},[35,1167,1135],{"class":1025},[35,1169,1139],{"class":1138},[35,1171,1142],{"class":447},[35,1173,1145],{"class":439},[35,1175,1148],{"class":447},[35,1177,1178],{"class":439},"\"1a86\"",[35,1180,1154],{"class":439},[35,1182,1183],{"class":447}," ATTRS{idProduct}==\"7523\",",[35,1185,1160],{"class":447},[35,1187,1188],{"class":447}," SYMLINK+=\"mycar\"\n",[14,1190,1191],{},"代碼解釋：",[1193,1194,1195,1198,1201,1204],"ul",{},[338,1196,1197],{},"KERNEL是內核固定名稱，這裏統一是“ttyUSB*”；",[338,1199,1200],{},"MODE是節點權限，通常改爲“0777”，表示可讀寫可運行；",[338,1202,1203],{},"SYMLINK是符號連接，即綁定的別名；",[338,1205,1206],{},"ATTRS是設備廠商的唯一標識，idVendor和idProduct正好組成上面通過lsusb查找到的設備ID。",[14,1208,1209,1210,1214,1217],{},"***小提示：***",[1211,1212,1213],"em",{},"一般的USB設備供應商都會提供類似的腳本文件，對於調用者而言，直接複製該文件到",[21,1215,1216],{},"/etc/udev/rule.d",[1211,1218,1219],{},"目錄即可。",[1221,1222,1223,1240],"table",{},[1224,1225,1226],"thead",{},[1227,1228,1229,1234,1237],"tr",{},[1230,1231,1233],"th",{"align":1232},"left","設備類型",[1230,1235,1236],{"align":1232},"內核名稱示例",[1230,1238,1239],{"align":1232},"說明",[1241,1242,1243,1255,1266,1277,1288,1299],"tbody",{},[1227,1244,1245,1249,1252],{},[1246,1247,1248],"td",{"align":1232},"USB 串口設備",[1246,1250,1251],{"align":1232},"ttyUSB*",[1246,1253,1254],{"align":1232},"USB 轉串口設備，如 /dev/ttyUSB0",[1227,1256,1257,1260,1263],{},[1246,1258,1259],{"align":1232},"串口設備",[1246,1261,1262],{"align":1232},"ttyS*",[1246,1264,1265],{"align":1232},"物理串口設備，如 /dev/ttyS0",[1227,1267,1268,1271,1274],{},[1246,1269,1270],{"align":1232},"存儲設備",[1246,1272,1273],{"align":1232},"sd*",[1246,1275,1276],{"align":1232},"SCSI 磁盤設備，如 /dev/sda",[1227,1278,1279,1282,1285],{},[1246,1280,1281],{"align":1232},"網絡設備",[1246,1283,1284],{"align":1232},"eth*",[1246,1286,1287],{"align":1232},"以太網設備，如 /dev/eth0",[1227,1289,1290,1293,1296],{},[1246,1291,1292],{"align":1232},"輸入設備",[1246,1294,1295],{"align":1232},"event*",[1246,1297,1298],{"align":1232},"輸入事件設備，如 /dev/input/event0",[1227,1300,1301,1304,1307],{},[1246,1302,1303],{"align":1232},"藍牙設備",[1246,1305,1306],{"align":1232},"rfcomm*",[1246,1308,1309],{"align":1232},"藍牙串口設備，如 /dev/rfcomm0",[14,1311,1312],{},"（3）.使規則生效",[14,1314,1315],{},"在終端下輸入如下指令：",[26,1317,1319],{"className":430,"code":1318,"language":432,"meta":31,"style":31},"\n# Ubuntu用下方命令\nsudo service udev reload\nsudo service udev restart\n\n#Fedora用下方命令\nsudo udevadm control --reload\nsudo udevadm trigger\n",[21,1320,1321,1325,1330,1343,1354,1358,1363,1376],{"__ignoreMap":31},[35,1322,1323],{"class":37,"line":38},[35,1324,1004],{"emptyLinePlaceholder":1003},[35,1326,1327],{"class":37,"line":44},[35,1328,1329],{"class":841},"# Ubuntu用下方命令\n",[35,1331,1332,1334,1337,1340],{"class":37,"line":50},[35,1333,767],{"class":439},[35,1335,1336],{"class":447}," service",[35,1338,1339],{"class":447}," udev",[35,1341,1342],{"class":447}," reload\n",[35,1344,1345,1347,1349,1351],{"class":37,"line":56},[35,1346,767],{"class":439},[35,1348,1336],{"class":447},[35,1350,1339],{"class":447},[35,1352,1353],{"class":447}," restart\n",[35,1355,1356],{"class":37,"line":62},[35,1357,1004],{"emptyLinePlaceholder":1003},[35,1359,1360],{"class":37,"line":68},[35,1361,1362],{"class":841},"#Fedora用下方命令\n",[35,1364,1365,1367,1370,1373],{"class":37,"line":74},[35,1366,767],{"class":439},[35,1368,1369],{"class":447}," udevadm",[35,1371,1372],{"class":447}," control",[35,1374,1375],{"class":443}," --reload\n",[35,1377,1378,1380,1382],{"class":37,"line":80},[35,1379,767],{"class":439},[35,1381,1369],{"class":447},[35,1383,1384],{"class":447}," trigger\n",[14,1386,1387],{},"再重新插拔設備即可。",[14,1389,1390],{},"（4）.測試",[14,1392,1393],{},"終端下輸入如下指令",[26,1395,1397],{"className":430,"code":1396,"language":432,"meta":31,"style":31},"ll /dev | grep ttyUSB\n",[21,1398,1399],{"__ignoreMap":31},[35,1400,1401,1404,1407,1410,1413],{"class":37,"line":38},[35,1402,1403],{"class":439},"ll",[35,1405,1406],{"class":447}," /dev",[35,1408,1409],{"class":1138}," |",[35,1411,1412],{"class":439}," grep",[35,1414,1415],{"class":447}," ttyUSB\n",[14,1417,1418],{},"運行結果如下：",[14,1420,1421],{},[282,1422],{"alt":31,"src":1423},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/image349.webp",[14,1425,1426],{},[282,1427],{"alt":31,"src":1428},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/image350.webp",[14,1430,1431,1432,1435],{},"也可以多次插拔USB設備，會發現設備端口",[21,1433,1434],{},"ttyUSBn","中的n編號會變動，但是別名是始終可以指向對應的USB設備的。至此，就可以使用別名來關聯所需使用的USB設備了。",[14,1437,1438],{},[253,1439,1440],{},"缺點：",[14,1442,1443],{},"上述實現也存在一定的侷限性，當Ubuntu接入兩臺或多臺相同型號的USB設備時，由於設備ID是一樣的，該種實現方式只會對其中的一臺設備生效，這種情況下，就需要通過第二種策略來實現端口的綁定了。",[247,1445,1447],{"id":1446},"根據主機硬件綁定端口多個相同設備","根據主機硬件綁定端口（多個相同設備)",[14,1449,1450,1452],{},[253,1451,1060],{}," 無人車中現接入一前一後兩臺相同型號的雷達，請爲二者綁定端口。",[14,1454,1455,1457],{},[253,1456,1066],{}," USB設備所連接主機的USB接口也是有其“標識”的，可以通過這個標識實現端口綁定。",[14,1459,1460],{},[253,1461,1072],{},[14,1463,1464],{},"（1）.查看所連接的主機USB接口的KERNELS",[14,1466,1467],{},"調用如下指令查看第一臺雷達的USB信息：",[26,1469,1471],{"className":430,"code":1470,"language":432,"meta":31,"style":31},"udevadm info --attribute-walk --name=/dev/ttyUSB0 | grep KERNELS\nudevadm info --attribute-walk --name=/dev/ttyACM0 | grep KERNELS\n",[21,1472,1473,1494],{"__ignoreMap":31},[35,1474,1475,1478,1481,1484,1487,1489,1491],{"class":37,"line":38},[35,1476,1477],{"class":439},"udevadm",[35,1479,1480],{"class":447}," info",[35,1482,1483],{"class":443}," --attribute-walk",[35,1485,1486],{"class":443}," --name=/dev/ttyUSB0",[35,1488,1409],{"class":1138},[35,1490,1412],{"class":439},[35,1492,1493],{"class":447}," KERNELS\n",[35,1495,1496,1498,1500,1502,1505,1507,1509],{"class":37,"line":44},[35,1497,1477],{"class":439},[35,1499,1480],{"class":447},[35,1501,1483],{"class":443},[35,1503,1504],{"class":443}," --name=/dev/ttyACM0",[35,1506,1409],{"class":1138},[35,1508,1412],{"class":439},[35,1510,1493],{"class":447},[14,1512,1513],{},[282,1514],{"alt":31,"src":1515},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/image351.webp",[14,1517,1518],{},"調用如下指令查看第二臺雷達的USB信息：",[26,1520,1522],{"className":430,"code":1521,"language":432,"meta":31,"style":31},"udevadm info --attribute-walk --name=/dev/ttyUSB1 | grep KERNELS\n",[21,1523,1524],{"__ignoreMap":31},[35,1525,1526,1528,1530,1532,1535,1537,1539],{"class":37,"line":38},[35,1527,1477],{"class":439},[35,1529,1480],{"class":447},[35,1531,1483],{"class":443},[35,1533,1534],{"class":443}," --name=/dev/ttyUSB1",[35,1536,1409],{"class":1138},[35,1538,1412],{"class":439},[35,1540,1493],{"class":447},[14,1542,1543,1544,1547,1548,1551,1552,1555],{},"運行結果相比較不同的KERNELS，第一臺雷達端口地址爲",[21,1545,1546],{},"KERNELS==1-1.3:1.0","，第二個雷達端口地址爲",[21,1549,1550],{},"KERNELS==1-1.4:1.0","。可以使用此數據作爲不同端口的“",[253,1553,1554],{},"唯一性標識","”。",[14,1557,1100],{},[14,1559,1103,1560,1562],{},[21,1561,1106],{},"目錄下新建文件xxx.rules（文件名自定義），輸入如下內容：",[26,1564,1565],{"className":430,"code":1110,"language":432,"meta":31,"style":31},[21,1566,1567],{"__ignoreMap":31},[35,1568,1569,1571,1573],{"class":37,"line":38},[35,1570,767],{"class":439},[35,1572,1119],{"class":447},[35,1574,1122],{"class":447},[26,1576,1578],{"className":430,"code":1577,"language":432,"meta":31,"style":31},"KERNEL==\"ttyUSB*\", KERNELS==\"1-1.3:1.0\", MODE:=\"0777\", SYMLINK+=\"rplidar_front\"\nKERNEL==\"ttyUSB*\", KERNELS==\"1-1.4:1.0\", MODE:=\"0777\", SYMLINK+=\"rplidar_back\"\n",[21,1579,1580,1609],{"__ignoreMap":31},[35,1581,1582,1584,1586,1588,1591,1593,1596,1599,1601,1604,1606],{"class":37,"line":38},[35,1583,1135],{"class":1025},[35,1585,1139],{"class":1138},[35,1587,1142],{"class":447},[35,1589,1590],{"class":1025}," KERNELS",[35,1592,1139],{"class":1138},[35,1594,1595],{"class":447},"=\"1-1.3:1.0\",",[35,1597,1598],{"class":439}," MODE:",[35,1600,1139],{"class":447},[35,1602,1603],{"class":439},"\"0777\"",[35,1605,1154],{"class":439},[35,1607,1608],{"class":447}," SYMLINK+=\"rplidar_front\"\n",[35,1610,1611,1613,1615,1617,1619,1621,1624,1626,1628,1630,1632],{"class":37,"line":44},[35,1612,1135],{"class":1025},[35,1614,1139],{"class":1138},[35,1616,1142],{"class":447},[35,1618,1590],{"class":1025},[35,1620,1139],{"class":1138},[35,1622,1623],{"class":447},"=\"1-1.4:1.0\",",[35,1625,1598],{"class":439},[35,1627,1139],{"class":447},[35,1629,1603],{"class":439},[35,1631,1154],{"class":439},[35,1633,1634],{"class":447}," SYMLINK+=\"rplidar_back\"\n",[14,1636,1312],{},[14,1638,1315],{},[26,1640,1641],{"className":430,"code":1318,"language":432,"meta":31,"style":31},[21,1642,1643,1647,1651,1661,1671,1675,1679,1689],{"__ignoreMap":31},[35,1644,1645],{"class":37,"line":38},[35,1646,1004],{"emptyLinePlaceholder":1003},[35,1648,1649],{"class":37,"line":44},[35,1650,1329],{"class":841},[35,1652,1653,1655,1657,1659],{"class":37,"line":50},[35,1654,767],{"class":439},[35,1656,1336],{"class":447},[35,1658,1339],{"class":447},[35,1660,1342],{"class":447},[35,1662,1663,1665,1667,1669],{"class":37,"line":56},[35,1664,767],{"class":439},[35,1666,1336],{"class":447},[35,1668,1339],{"class":447},[35,1670,1353],{"class":447},[35,1672,1673],{"class":37,"line":62},[35,1674,1004],{"emptyLinePlaceholder":1003},[35,1676,1677],{"class":37,"line":68},[35,1678,1362],{"class":841},[35,1680,1681,1683,1685,1687],{"class":37,"line":74},[35,1682,767],{"class":439},[35,1684,1369],{"class":447},[35,1686,1372],{"class":447},[35,1688,1375],{"class":443},[35,1690,1691,1693,1695],{"class":37,"line":80},[35,1692,767],{"class":439},[35,1694,1369],{"class":447},[35,1696,1384],{"class":447},[14,1698,1387],{},[14,1700,1390],{},[14,1702,1703],{},"終端下輸入如下指令，運行結果如下：",[26,1705,1706],{"className":430,"code":1396,"language":432,"meta":31,"style":31},[21,1707,1708],{"__ignoreMap":31},[35,1709,1710,1712,1714,1716,1718],{"class":37,"line":38},[35,1711,1403],{"class":439},[35,1713,1406],{"class":447},[35,1715,1409],{"class":1138},[35,1717,1412],{"class":439},[35,1719,1415],{"class":447},[14,1721,1722],{},[282,1723],{"alt":31,"src":1724},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/image352.webp",[14,1726,1727],{},"至此，就可以使用別名來關聯所需使用的USB設備了。",[14,1729,1730,1732],{},[253,1731,1440],{}," USB設備必須連接在主機的指定端口上，否則，會導致端口綁定失敗，或產生邏輯錯誤。(而且增加新設備可能會導致端口改變)",[247,1734,1735],{"id":1735},"根據其他屬性綁定端口",[14,1737,1738],{},"（1）.查看所連接的主機USB接口的信息",[26,1740,1742],{"className":430,"code":1741,"language":432,"meta":31,"style":31},"udevadm info -a -p $(udevadm info -q path -n /dev/ttyACM0)\nudevadm info -a -p $(udevadm info -q path -n /dev/ttyUSB0)\n",[21,1743,1744,1777],{"__ignoreMap":31},[35,1745,1746,1748,1750,1753,1755,1758,1760,1762,1765,1768,1771,1774],{"class":37,"line":38},[35,1747,1477],{"class":439},[35,1749,1480],{"class":447},[35,1751,1752],{"class":443}," -a",[35,1754,817],{"class":443},[35,1756,1757],{"class":1025}," $(",[35,1759,1477],{"class":439},[35,1761,1480],{"class":447},[35,1763,1764],{"class":443}," -q",[35,1766,1767],{"class":447}," path",[35,1769,1770],{"class":443}," -n",[35,1772,1773],{"class":447}," /dev/ttyACM0",[35,1775,1776],{"class":1025},")\n",[35,1778,1779,1781,1783,1785,1787,1789,1791,1793,1795,1797,1799,1802],{"class":37,"line":44},[35,1780,1477],{"class":439},[35,1782,1480],{"class":447},[35,1784,1752],{"class":443},[35,1786,817],{"class":443},[35,1788,1757],{"class":1025},[35,1790,1477],{"class":439},[35,1792,1480],{"class":447},[35,1794,1764],{"class":443},[35,1796,1767],{"class":447},[35,1798,1770],{"class":443},[35,1800,1801],{"class":447}," /dev/ttyUSB0",[35,1803,1776],{"class":1025},[14,1805,1806],{},[282,1807],{"alt":31,"src":1808},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/image353.webp",[14,1810,1811],{},"這些數據都是不會變的，所以可以拿這些數據來做標識",[14,1813,1100],{},[14,1815,1103,1816,1562],{},[21,1817,1106],{},[26,1819,1820],{"className":430,"code":1110,"language":432,"meta":31,"style":31},[21,1821,1822],{"__ignoreMap":31},[35,1823,1824,1826,1828],{"class":37,"line":38},[35,1825,767],{"class":439},[35,1827,1119],{"class":447},[35,1829,1122],{"class":447},[26,1831,1833],{"className":430,"code":1832,"language":432,"meta":31,"style":31},"KERNEL==\"ttyACM*\", ATTRS{idVendor}==\"1a86\", ATTRS{idProduct}==\"55d4\", ATTRS{serial}==\"0001\", MODE:=\"0777\", SYMLINK+=\"ttyACM_Lidar\"\nKERNEL==\"ttyACM*\", ATTRS{idVendor}==\"1a86\", ATTRS{idProduct}==\"55d4\", ATTRS{serial}==\"0002\", MODE:=\"0777\", SYMLINK+=\"ttyACM_MCU\"\nKERNEL==\"ttyUSB*\", ATTRS{idVendor}==\"1a86\", ATTRS{idProduct}==\"7523\", MODE:=\"0777\", SYMLINK+=\"ttyUSB_IMU\"\n",[21,1834,1835,1863,1889],{"__ignoreMap":31},[35,1836,1837,1839,1841,1844,1846,1848,1850,1852,1855,1858,1860],{"class":37,"line":38},[35,1838,1135],{"class":1025},[35,1840,1139],{"class":1138},[35,1842,1843],{"class":447},"=\"ttyACM*\",",[35,1845,1145],{"class":439},[35,1847,1148],{"class":447},[35,1849,1178],{"class":439},[35,1851,1154],{"class":439},[35,1853,1854],{"class":447}," ATTRS{idProduct}==\"55d4\",",[35,1856,1857],{"class":447}," ATTRS{serial}==\"0001\",",[35,1859,1160],{"class":447},[35,1861,1862],{"class":447}," SYMLINK+=\"ttyACM_Lidar\"\n",[35,1864,1865,1867,1869,1871,1873,1875,1877,1879,1881,1884,1886],{"class":37,"line":44},[35,1866,1135],{"class":1025},[35,1868,1139],{"class":1138},[35,1870,1843],{"class":447},[35,1872,1145],{"class":439},[35,1874,1148],{"class":447},[35,1876,1178],{"class":439},[35,1878,1154],{"class":439},[35,1880,1854],{"class":447},[35,1882,1883],{"class":447}," ATTRS{serial}==\"0002\",",[35,1885,1160],{"class":447},[35,1887,1888],{"class":447}," SYMLINK+=\"ttyACM_MCU\"\n",[35,1890,1891,1893,1895,1897,1899,1901,1903,1905,1907,1909],{"class":37,"line":50},[35,1892,1135],{"class":1025},[35,1894,1139],{"class":1138},[35,1896,1142],{"class":447},[35,1898,1145],{"class":439},[35,1900,1148],{"class":447},[35,1902,1178],{"class":439},[35,1904,1154],{"class":439},[35,1906,1183],{"class":447},[35,1908,1160],{"class":447},[35,1910,1911],{"class":447}," SYMLINK+=\"ttyUSB_IMU\"\n",[14,1913,1312],{},[14,1915,1315],{},[26,1917,1918],{"className":430,"code":1318,"language":432,"meta":31,"style":31},[21,1919,1920,1924,1928,1938,1948,1952,1956,1966],{"__ignoreMap":31},[35,1921,1922],{"class":37,"line":38},[35,1923,1004],{"emptyLinePlaceholder":1003},[35,1925,1926],{"class":37,"line":44},[35,1927,1329],{"class":841},[35,1929,1930,1932,1934,1936],{"class":37,"line":50},[35,1931,767],{"class":439},[35,1933,1336],{"class":447},[35,1935,1339],{"class":447},[35,1937,1342],{"class":447},[35,1939,1940,1942,1944,1946],{"class":37,"line":56},[35,1941,767],{"class":439},[35,1943,1336],{"class":447},[35,1945,1339],{"class":447},[35,1947,1353],{"class":447},[35,1949,1950],{"class":37,"line":62},[35,1951,1004],{"emptyLinePlaceholder":1003},[35,1953,1954],{"class":37,"line":68},[35,1955,1362],{"class":841},[35,1957,1958,1960,1962,1964],{"class":37,"line":74},[35,1959,767],{"class":439},[35,1961,1369],{"class":447},[35,1963,1372],{"class":447},[35,1965,1375],{"class":443},[35,1967,1968,1970,1972],{"class":37,"line":80},[35,1969,767],{"class":439},[35,1971,1369],{"class":447},[35,1973,1384],{"class":447},[14,1975,1976,1977],{},"再重新插拔設備即可，或者 ",[253,1978,1979],{},"直接重啓系統。",[14,1981,1390],{},[14,1983,1393,1984,1987],{},[21,1985,1986],{},"ll /dev | grep ttyUSB","，運行結果如下：",[14,1989,1990],{},[282,1991],{"alt":31,"src":1992},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/image354.webp",[14,1994,1727],{},[14,1996,1997,1999],{},[253,1998,1440],{}," 一些設備可能沒有串口號等。",[247,2001,2002],{"id":2002},"其他注意事項",[14,2004,2005,2006,2008,2009,2012,2013,2016,2017,2020,2021,2023],{},"並非所有的USB設備端口號都是",[21,2007,1434],{},"的格式，比如Arduino的端口號可能是",[21,2010,2011],{},"ttyACMn","，而對於USB攝像頭而言，一臺設備則對應兩個端口號，分別是",[21,2014,2015],{},"videon","和",[21,2018,2019],{},"video(n+1)","，並且啓用攝像頭設備一般使用的是",[21,2022,2015],{},"端口，綁定時需要關聯的也是該接口。",[14,2025,2026,2027,2030,2031,2034,2035,2037,2038,2041,2042,2045,2046,2049,2050,2049,2053,2049,2056,621],{},"但是無論是外接何種USB設備，也不管採用上述兩種方案的哪一種進行端口綁定，其原理都是類似的，只是實現細節不同而已。如果是外接的Arduino設備，那麼需要在rules文件中的將",[21,2028,2029],{},"KERNEL==\"ttyUSB*\"","修改爲",[21,2032,2033],{},"KERNEL==\"ttyACM*\"","，如果外接的是USB攝像頭，那麼則需要在rules文件中的將",[21,2036,2029],{},"修改爲類似於",[21,2039,2040],{},"KERNEL==\"video[0,2,4,6]\"","的格式，其中",[21,2043,2044],{},"video[0,2,4,6]","表示可以綁定的端口爲",[21,2047,2048],{},"video0","或",[21,2051,2052],{},"video2",[21,2054,2055],{},"video4",[21,2057,2058],{},"video6",[10,2060,2062],{"id":2061},"linux分區gui工具","Linux分區Gui工具",[26,2064,2066],{"className":358,"code":2065,"language":360,"meta":361,"style":31},"sudo apt install gparted\nsudo dnf install gparted\n",[21,2067,2068,2073],{"__ignoreMap":31},[35,2069,2070],{"class":37,"line":38},[35,2071,2072],{},"sudo apt install gparted\n",[35,2074,2075],{"class":37,"line":44},[35,2076,2077],{},"sudo dnf install gparted\n",[10,2079,2080],{"id":2080},"掛載內網網頁",[14,2082,2083],{},"可以把本地的網頁掛載到路由器端，或者同內網段其他設備上，甚至可以掛載在本地。",[14,2085,2086],{},"下面以安卓設備爲例子，由於安卓設備暫時不能直接打開html,所以我們可以把html掛載到本地服務器，再通過瀏覽器查看。",[14,2088,2089],{},"由於安卓系統基於Linux內核，所以我們可以下載一個叫termux的app來敲一些Linux命令：",[14,2091,2092],{},[2093,2094,2095],"a",{"href":2095,"rel":2096},"https://github.com/termux/termux-app",[2097],"nofollow",[14,2099,2100],{},"首先打開app後，先更新軟件緩存：",[26,2102,2104],{"className":430,"code":2103,"language":432,"meta":31,"style":31},"pkg update\n",[21,2105,2106],{"__ignoreMap":31},[35,2107,2108,2111],{"class":37,"line":38},[35,2109,2110],{"class":439},"pkg",[35,2112,2113],{"class":447}," update\n",[14,2115,2116],{},"然後換源",[26,2118,2120],{"className":430,"code":2119,"language":432,"meta":31,"style":31},"nano $PREFIX/etc/apt/sources.list\n",[21,2121,2122],{"__ignoreMap":31},[35,2123,2124,2126,2129],{"class":37,"line":38},[35,2125,825],{"class":439},[35,2127,2128],{"class":1025}," $PREFIX",[35,2130,2131],{"class":447},"/etc/apt/sources.list\n",[14,2133,2134],{},"將該文件內容替換爲下面：",[26,2136,2138],{"className":430,"code":2137,"language":432,"meta":31,"style":31},"deb https://mirrors.bfsu.edu.cn/termux/termux-packages-24 stable main\n",[21,2139,2140],{"__ignoreMap":31},[35,2141,2142,2145,2148,2151],{"class":37,"line":38},[35,2143,2144],{"class":439},"deb",[35,2146,2147],{"class":447}," https://mirrors.bfsu.edu.cn/termux/termux-packages-24",[35,2149,2150],{"class":447}," stable",[35,2152,2153],{"class":447}," main\n",[1193,2155,2156,2183],{},[338,2157,2158,2159,2161,2162],{},"如果你使用的是",[21,2160,825],{},"編輯器：",[1193,2163,2164,2171,2177],{},[338,2165,2166,2167,2170],{},"按 ",[21,2168,2169],{},"Ctrl+O"," 保存文件。",[338,2172,2166,2173,2176],{},[21,2174,2175],{},"Enter"," 確認文件名。",[338,2178,2166,2179,2182],{},[21,2180,2181],{},"Ctrl+X"," 退出編輯器。",[338,2184,2158,2185,2161,2188],{},[21,2186,2187],{},"vim",[1193,2189,2190,2196],{},[338,2191,2166,2192,2195],{},[21,2193,2194],{},"Esc"," 退出編輯模式。",[338,2197,2198,2199,2202],{},"輸入 ",[21,2200,2201],{},":wq"," 保存並退出。",[14,2204,2205],{},"接下來重新更新軟件源：",[26,2207,2209],{"className":430,"code":2208,"language":432,"meta":31,"style":31},"pkg update && pkg upgrade\n",[21,2210,2211],{"__ignoreMap":31},[35,2212,2213,2215,2218,2221,2223],{"class":37,"line":38},[35,2214,2110],{"class":439},[35,2216,2217],{"class":447}," update",[35,2219,2220],{"class":1025}," && ",[35,2222,2110],{"class":439},[35,2224,2225],{"class":447}," upgrade\n",[14,2227,2228],{},"安裝python：",[26,2230,2232],{"className":430,"code":2231,"language":432,"meta":31,"style":31},"pkg install python3\n",[21,2233,2234],{"__ignoreMap":31},[35,2235,2236,2238,2240],{"class":37,"line":38},[35,2237,2110],{"class":439},[35,2239,773],{"class":447},[35,2241,2242],{"class":447}," python3\n",[14,2244,2245,2248],{},[253,2246,2247],{},"通過Termux訪問設備存儲"," ：",[14,2250,2251],{},"如果文件在安卓設備上，可以使用Termux的文件管理器訪問設備的存儲：",[26,2253,2255],{"className":430,"code":2254,"language":432,"meta":31,"style":31},"termux-setup-storage\n",[21,2256,2257],{"__ignoreMap":31},[35,2258,2259],{"class":37,"line":38},[35,2260,2254],{"class":439},[335,2262,2263],{},[338,2264,2265,2248,2268],{},[253,2266,2267],{},"進入HTML文件所在的目錄",[335,2269,2270],{},[338,2271,2272,2273,2276],{},"使用",[21,2274,2275],{},"cd","命令進入HTML文件所在的目錄：",[26,2278,2280],{"className":430,"code":2279,"language":432,"meta":31,"style":31},"cd ~/your_html_folder\n",[21,2281,2282],{"__ignoreMap":31},[35,2283,2284,2286],{"class":37,"line":38},[35,2285,2275],{"class":443},[35,2287,2288],{"class":447}," ~/your_html_folder\n",[335,2290,2291],{"start":44},[338,2292,2293,2248,2296,2301,2320],{},[253,2294,2295],{},"啓動Python HTTP服務器",[335,2297,2298],{},[338,2299,2300],{},"運行以下命令啓動一個簡單的HTTP服務器：",[26,2302,2304],{"className":430,"code":2303,"language":432,"meta":31,"style":31},"python3 -m http.server 8000\n",[21,2305,2306],{"__ignoreMap":31},[35,2307,2308,2311,2314,2317],{"class":37,"line":38},[35,2309,2310],{"class":439},"python3",[35,2312,2313],{"class":443}," -m",[35,2315,2316],{"class":447}," http.server",[35,2318,2319],{"class":443}," 8000\n",[335,2321,2322],{"start":50},[338,2323,2324,2325,2328],{},"這會在端口",[21,2326,2327],{},"8000","上啓動一個Web服務器。",[1193,2330,2331],{},[338,2332,2333],{},"啓動服務器後，Termux會顯示日誌信息，例如：",[26,2335,2337],{"className":430,"code":2336,"language":432,"meta":31,"style":31},"Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...\n",[21,2338,2339],{"__ignoreMap":31},[35,2340,2341,2344,2347,2350,2353,2356,2359],{"class":37,"line":38},[35,2342,2343],{"class":439},"Serving",[35,2345,2346],{"class":447}," HTTP",[35,2348,2349],{"class":447}," on",[35,2351,2352],{"class":443}," 0.0.0.0",[35,2354,2355],{"class":447}," port",[35,2357,2358],{"class":443}," 8000",[35,2360,2361],{"class":1025}," (http://0.0.0.0:8000/) ...\n",[1193,2363,2364],{},[338,2365,2366],{},"這表示服務器已成功啓動。",[14,2368,2369],{},[253,2370,2371],{},"在瀏覽器中訪問HTML文件",[335,2373,2374],{},[338,2375,2376,2248,2379,2384,2393],{},[253,2377,2378],{},"在同一設備上訪問",[335,2380,2381],{},[338,2382,2383],{},"打開安卓設備上的瀏覽器（如Chrome），輸入以下地址：",[26,2385,2387],{"className":430,"code":2386,"language":432,"meta":31,"style":31},"http://localhost:8000\n",[21,2388,2389],{"__ignoreMap":31},[35,2390,2391],{"class":37,"line":38},[35,2392,2386],{"class":439},[335,2394,2395],{"start":50},[338,2396,2397,2398,2401],{},"如果HTML文件中有",[21,2399,2400],{},"index.html","，它會自動加載；否則，你需要手動點擊文件鏈接。",[10,2403,2405],{"id":2404},"rustdesk","RustDesk",[247,2407,2409],{"id":2408},"rustdesk無人值守遠程控制","RustDesk無人值守遠程控制",[14,2411,2412],{},"目前rustdesk還沒辦法進行無人值守在wayland下,所以我們需要把登陸密碼,鎖屏和休眠待機全部關掉.",[2414,2415,2417],"h5",{"id":2416},"設置-kde6-自動登錄","設置 KDE6 自動登錄",[335,2419,2420],{},[338,2421,2422],{},"可以先查自己的sddm類型",[26,2424,2426],{"className":430,"code":2425,"language":432,"meta":31,"style":31},"ls /usr/share/xsessions/\n",[21,2427,2428],{"__ignoreMap":31},[35,2429,2430,2433],{"class":37,"line":38},[35,2431,2432],{"class":439},"ls",[35,2434,2435],{"class":447}," /usr/share/xsessions/\n",[26,2437,2439],{"className":430,"code":2438,"language":432,"meta":31,"style":31},"ls /usr/share/wayland-sessions/\n",[21,2440,2441],{"__ignoreMap":31},[35,2442,2443,2445],{"class":37,"line":38},[35,2444,2432],{"class":439},[35,2446,2447],{"class":447}," /usr/share/wayland-sessions/\n",[14,2449,2450],{},"看哪個會輸出東西,輸出東西的文件夾就是你擁有的sddm,比如xsessions輸出內容的話,那就是x11的sddm,如果wayland-sessions輸出內容的話你就是wayland的sddm.",[335,2452,2453],{"start":44},[338,2454,2455],{},"編輯 SDDM 配置：",[26,2457,2459],{"className":430,"code":2458,"language":432,"meta":31,"style":31},"sudo nano /etc/sddm.conf\n",[21,2460,2461],{"__ignoreMap":31},[35,2462,2463,2465,2468],{"class":37,"line":38},[35,2464,767],{"class":439},[35,2466,2467],{"class":447}," nano",[35,2469,2470],{"class":447}," /etc/sddm.conf\n",[14,2472,2473,2474,2477],{},"在文件最上面有個",[35,2475,2476],{},"Autologin",",在這個底下加入下面的內容：",[26,2479,2481],{"className":430,"code":2480,"language":432,"meta":31,"style":31},"[Autologin]\nUser=你的用户名\nSession=plasma.desktop   # 或 plasma.desktop（X11），方案一可用 Wayland\n",[21,2482,2483,2488,2498],{"__ignoreMap":31},[35,2484,2485],{"class":37,"line":38},[35,2486,2487],{"class":1025},"[Autologin]\n",[35,2489,2490,2493,2495],{"class":37,"line":44},[35,2491,2492],{"class":1025},"User",[35,2494,1139],{"class":1138},[35,2496,2497],{"class":447},"你的用户名\n",[35,2499,2500,2503,2505,2508],{"class":37,"line":50},[35,2501,2502],{"class":1025},"Session",[35,2504,1139],{"class":1138},[35,2506,2507],{"class":447},"plasma.desktop",[35,2509,2510],{"class":841},"   # 或 plasma.desktop（X11），方案一可用 Wayland\n",[335,2512,2513],{"start":50},[338,2514,2515],{},"保存退出後重啓 SDDM：",[26,2517,2519],{"className":430,"code":2518,"language":432,"meta":31,"style":31},"sudo systemctl restart sddm\n",[21,2520,2521],{"__ignoreMap":31},[35,2522,2523,2525,2528,2531],{"class":37,"line":38},[35,2524,767],{"class":439},[35,2526,2527],{"class":447}," systemctl",[35,2529,2530],{"class":447}," restart",[35,2532,2533],{"class":447}," sddm\n",[14,2535,2536],{},"✅ 開機後自動進入桌面，無需輸入密碼",[2414,2538,2540],{"id":2539},"關閉鎖屏在-kde6-系統設置裏","關閉鎖屏在 KDE6 系統設置裏：",[14,2542,2543],{},"打開 系統設置 → 屏幕鎖定(Screen Locking)\n關閉自動鎖定\n關閉屏幕關閉 / 屏幕保護鎖定\n這樣 RustDesk 可以開機後直接控制桌面，不會被鎖屏阻擋",[2414,2545,2547],{"id":2546},"關閉休眠系統設置-電源管理power-managerment","關閉休眠系統設置 → 電源管理(Power Managerment)",[14,2549,2550],{},"禁用“休眠”或“自動掛起”\n保證電腦開機一直在線，RustDesk 可隨時遠控\n如果必須休眠，可在 BIOS 設置裏禁用休眠，保證開機即聯網",[247,2552,2554],{"id":2553},"rustdesk自建服務器","RustDesk自建服務器",[2414,2556,2557],{"id":2557},"在服務器端安裝",[2559,2560,2561],"h6",{"id":2561},"命令行方式",[335,2563,2564],{},[338,2565,2566,2567],{},"打開官網:",[2093,2568,2569],{"href":2569,"rel":2570},"https://rustdesk.com/docs/zh-cn/self-host/",[2097],[14,2572,2573],{},[282,2574],{"alt":2575,"src":2576},"alt text","https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/1768144998052.webp",[335,2578,2579],{"start":44},[338,2580,2581],{},"用ssh訪問你需要安裝RustDesk的服務器",[26,2583,2585],{"className":430,"code":2584,"language":432,"meta":31,"style":31},"ssh tungchiahui@10.0.0.4\n",[21,2586,2587],{"__ignoreMap":31},[35,2588,2589,2591],{"class":37,"line":38},[35,2590,440],{"class":439},[35,2592,2593],{"class":447}," tungchiahui@10.0.0.4\n",[14,2595,2596],{},[282,2597],{"alt":2575,"src":2598},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/1768145500558.webp",[335,2600,2601],{"start":50},[338,2602,2603],{},"使用方法二的命令",[14,2605,2606],{},[282,2607],{"alt":2575,"src":2608},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/1768145605588.webp",[26,2610,2612],{"className":430,"code":2611,"language":432,"meta":31,"style":31},"wget https://raw.githubusercontent.com/techahold/rustdeskinstall/master/install.sh\nchmod +x install.sh\n./install.sh\n",[21,2613,2614,2622,2631],{"__ignoreMap":31},[35,2615,2616,2619],{"class":37,"line":38},[35,2617,2618],{"class":439},"wget",[35,2620,2621],{"class":447}," https://raw.githubusercontent.com/techahold/rustdeskinstall/master/install.sh\n",[35,2623,2624,2626,2628],{"class":37,"line":44},[35,2625,883],{"class":439},[35,2627,886],{"class":447},[35,2629,2630],{"class":447}," install.sh\n",[35,2632,2633],{"class":37,"line":50},[35,2634,2635],{"class":439},"./install.sh\n",[14,2637,2638],{},"./install.sh的設置看下一節",[335,2640,2641],{"start":56},[338,2642,2643],{},"配置與查看KEY",[14,2645,2646,2647,2650,2651,2654],{},"這裏如果你是想直接用公網ip則選擇",[21,2648,2649],{},"1)IP",",如果你是DDNS等用域名綁定了IP地址,則選擇",[21,2652,2653],{},"2)",".",[14,2656,2657],{},[282,2658],{"alt":2575,"src":2659},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/1768148704646.webp",[14,2661,2662,2663],{},"這個選",[21,2664,2665],{},"2)No",[14,2667,2668],{},[282,2669],{"alt":2575,"src":2670},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/1768148806049.webp",[14,2672,2673],{},"這個是KEY,要複製下來,等後面軟件配置的時候要用.",[14,2675,2676],{},[282,2677],{"alt":2575,"src":2678},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/1768148866392.webp",[335,2680,2681],{"start":62},[338,2682,2683,2684,2689,2705,2683,2708,2758,2763,2799,2683,2801],{},"配置防火牆",[335,2685,2686],{},[338,2687,2688],{},"如果你是Debian系\n安裝防火牆",[26,2690,2692],{"className":430,"code":2691,"language":432,"meta":31,"style":31},"sudo apt install ufw\n",[21,2693,2694],{"__ignoreMap":31},[35,2695,2696,2698,2700,2702],{"class":37,"line":38},[35,2697,767],{"class":439},[35,2699,770],{"class":447},[35,2701,773],{"class":447},[35,2703,2704],{"class":447}," ufw\n",[2706,2707],"br",{},[26,2709,2711],{"className":430,"code":2710,"language":432,"meta":31,"style":31},"sudo ufw allow 22\n\nufw allow 21114:21119/tcp\nufw allow 21116/udp\nsudo ufw enable\n",[21,2712,2713,2726,2730,2740,2749],{"__ignoreMap":31},[35,2714,2715,2717,2720,2723],{"class":37,"line":38},[35,2716,767],{"class":439},[35,2718,2719],{"class":447}," ufw",[35,2721,2722],{"class":447}," allow",[35,2724,2725],{"class":443}," 22\n",[35,2727,2728],{"class":37,"line":44},[35,2729,1004],{"emptyLinePlaceholder":1003},[35,2731,2732,2735,2737],{"class":37,"line":50},[35,2733,2734],{"class":439},"ufw",[35,2736,2722],{"class":447},[35,2738,2739],{"class":447}," 21114:21119/tcp\n",[35,2741,2742,2744,2746],{"class":37,"line":56},[35,2743,2734],{"class":439},[35,2745,2722],{"class":447},[35,2747,2748],{"class":447}," 21116/udp\n",[35,2750,2751,2753,2755],{"class":37,"line":62},[35,2752,767],{"class":439},[35,2754,2719],{"class":447},[35,2756,2757],{"class":447}," enable\n",[335,2759,2760],{"start":44},[338,2761,2762],{},"如果你是RHEL系\n安裝防火牆",[26,2764,2766],{"className":430,"code":2765,"language":432,"meta":31,"style":31},"# 如果你是RHEL系\nsudo dnf install firewalld\nsudo systemctl enable --now firewalld\n",[21,2767,2768,2773,2785],{"__ignoreMap":31},[35,2769,2770],{"class":37,"line":38},[35,2771,2772],{"class":841},"# 如果你是RHEL系\n",[35,2774,2775,2777,2780,2782],{"class":37,"line":44},[35,2776,767],{"class":439},[35,2778,2779],{"class":447}," dnf",[35,2781,773],{"class":447},[35,2783,2784],{"class":447}," firewalld\n",[35,2786,2787,2789,2791,2794,2797],{"class":37,"line":50},[35,2788,767],{"class":439},[35,2790,2527],{"class":447},[35,2792,2793],{"class":447}," enable",[35,2795,2796],{"class":443}," --now",[35,2798,2784],{"class":447},[2706,2800],{},[26,2802,2804],{"className":430,"code":2803,"language":432,"meta":31,"style":31},"sudo firewall-cmd --add-port=22/tcp --permanent\nsudo firewall-cmd --reload\n\nsudo firewall-cmd --add-port=21114-21119/tcp --permanent\nsudo firewall-cmd --reload\n\nsudo firewall-cmd --add-port=21116/udp --permanent\nsudo firewall-cmd --reload\n\nsudo systemctl enable --now firewalld\n",[21,2805,2806,2819,2827,2831,2842,2850,2854,2865,2873,2877],{"__ignoreMap":31},[35,2807,2808,2810,2813,2816],{"class":37,"line":38},[35,2809,767],{"class":439},[35,2811,2812],{"class":447}," firewall-cmd",[35,2814,2815],{"class":443}," --add-port=22/tcp",[35,2817,2818],{"class":443}," --permanent\n",[35,2820,2821,2823,2825],{"class":37,"line":44},[35,2822,767],{"class":439},[35,2824,2812],{"class":447},[35,2826,1375],{"class":443},[35,2828,2829],{"class":37,"line":50},[35,2830,1004],{"emptyLinePlaceholder":1003},[35,2832,2833,2835,2837,2840],{"class":37,"line":56},[35,2834,767],{"class":439},[35,2836,2812],{"class":447},[35,2838,2839],{"class":443}," --add-port=21114-21119/tcp",[35,2841,2818],{"class":443},[35,2843,2844,2846,2848],{"class":37,"line":62},[35,2845,767],{"class":439},[35,2847,2812],{"class":447},[35,2849,1375],{"class":443},[35,2851,2852],{"class":37,"line":68},[35,2853,1004],{"emptyLinePlaceholder":1003},[35,2855,2856,2858,2860,2863],{"class":37,"line":74},[35,2857,767],{"class":439},[35,2859,2812],{"class":447},[35,2861,2862],{"class":443}," --add-port=21116/udp",[35,2864,2818],{"class":443},[35,2866,2867,2869,2871],{"class":37,"line":80},[35,2868,767],{"class":439},[35,2870,2812],{"class":447},[35,2872,1375],{"class":443},[35,2874,2875],{"class":37,"line":86},[35,2876,1004],{"emptyLinePlaceholder":1003},[35,2878,2879,2881,2883,2885,2887],{"class":37,"line":92},[35,2880,767],{"class":439},[35,2882,2527],{"class":447},[35,2884,2793],{"class":447},[35,2886,2796],{"class":443},[35,2888,2784],{"class":447},[2559,2890,2892],{"id":2891},"_1panel方式","1Panel方式",[335,2894,2895],{},[338,2896,2897],{},"在面板裏搜RustDesk並安裝",[14,2899,2900],{},[282,2901],{"alt":2575,"src":2902},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/1768146100467.webp",[335,2904,2905],{"start":44},[338,2906,2683],{},[14,2908,2909],{},[282,2910],{"alt":2575,"src":2911},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/1768146828373.webp",[14,2913,2914,2915,2918,2921],{},"添加幾個端口\n",[282,2916],{"alt":2575,"src":2917},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/1768146848849.webp",[282,2919],{"alt":2575,"src":2920},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/1768146858053.webp",[282,2922],{"alt":2575,"src":2923},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/1768146876612.webp",[335,2925,2926],{"start":50},[338,2927,2928,2929],{},"查看KEY\n",[282,2930],{"alt":2575,"src":2931},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/1768146996637.webp",[14,2933,2934],{},"複製KEY",[14,2936,2937],{},[282,2938],{"alt":2575,"src":2939},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/1768147034654.webp",[2414,2941,2943],{"id":2942},"自建服務器後配置rustdesk軟件","自建服務器後配置RustDesk軟件",[335,2945,2946],{},[338,2947,2948],{},"PC端",[14,2950,2951],{},[282,2952],{"alt":2575,"src":2953},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/1768147115389.webp",[14,2955,2956],{},[282,2957],{"alt":2575,"src":2958},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/1768147204480.webp",[14,2960,2961,2962],{},"出現就緒就是配置成功了\n",[282,2963],{"alt":2575,"src":2964},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/1768147547538.webp",[335,2966,2967],{"start":44},[338,2968,2969],{},"移動端",[14,2971,2972],{},[282,2973],{"alt":2575,"src":2974},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/1768149138253.webp",[14,2976,2977],{},[282,2978],{"alt":2575,"src":2979},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/1768149199158.webp",[2559,2981,2982],{"id":2982},"注意的問題",[14,2984,2985],{},"如果你是家庭的內網服務器,則需要讓路由器也放行對應端口",[14,2987,2988,2989],{},"找到openwrt防火牆設置,點擊添加\n",[282,2990],{"alt":2575,"src":2991},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/1768148357743.webp",[14,2993,2994],{},[282,2995],{"alt":2575,"src":2996},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/1768148378543.webp",[14,2998,2999],{},[282,3000],{"alt":2575,"src":3001},"https://cdn.tungchiahui.cn/tungwebsite/assets/images/2024/03/30/1768148398594.webp",[14,3003,3004],{},"這樣纔可以讓你的服務器端口被真正成功放行.",[3006,3007,3008],"style",{},"html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}",{"title":31,"searchDepth":44,"depth":44,"links":3010},[3011,3012,3013,3014,3015,3016,3017],{"id":12,"depth":50,"text":12},{"id":244,"depth":50,"text":245},{"id":743,"depth":50,"text":743},{"id":987,"depth":50,"text":988},{"id":2061,"depth":50,"text":2062},{"id":2080,"depth":50,"text":2080},{"id":2404,"depth":50,"text":2405},"/zh-hant/wiki/2024-03-30-linux-jiao-cheng/ch9-qi-ta-cao-zuo","9",9000000,"2024-03-30","wiki/2024-03-30-linux-jiao-cheng","zh-hant:2024-03-30-linux-jiao-cheng","/zh-hant/wiki/2024-03-30-linux-jiao-cheng","Linux教程","md","wiki/2024-03-30-Linux教程/ch9-其他操作",false,null,"zh-Hant","zh-hant",{},{"title":5,"description":31},"/wiki/2024-03-30-linux-jiao-cheng/ch9-qi-ta-cao-zuo","_i18n/zh-hant/wiki/2024-03-30-Linux教程/ch9-其他操作","F3xDHlb93dWPS6kl_fV4W04XHBdzSon_onDktwMyZO0",[3038,3044,3050,3056,3062,3068,3074,3080,3086,3087],{"path":3039,"stem":3040,"title":3041,"date":3021,"chapter":3042,"chapterSort":3043,"docKey":3023,"docRoot":3024,"docTitle":3025,"isWikiDoc":1003,"isWikiIndex":3028},"/zh-hant/wiki/2024-03-30-linux-jiao-cheng/ch1-fa-xing-ban-tui-jian","_i18n/zh-hant/wiki/2024-03-30-Linux教程/ch1-发行版推荐","發行版推薦","1",1000000,{"path":3045,"stem":3046,"title":3047,"date":3021,"chapter":3048,"chapterSort":3049,"docKey":3023,"docRoot":3024,"docTitle":3025,"isWikiDoc":1003,"isWikiIndex":3028},"/zh-hant/wiki/2024-03-30-linux-jiao-cheng/ch2-linux-zhuang-ji-jiao-cheng","_i18n/zh-hant/wiki/2024-03-30-Linux教程/ch2-Linux装机教程","Linux裝機教程","2",2000000,{"path":3051,"stem":3052,"title":3053,"date":3021,"chapter":3054,"chapterSort":3055,"docKey":3023,"docRoot":3024,"docTitle":3025,"isWikiDoc":1003,"isWikiIndex":3028},"/zh-hant/wiki/2024-03-30-linux-jiao-cheng/ch3-an-zhuang-bi-bei-pei-zhi","_i18n/zh-hant/wiki/2024-03-30-Linux教程/ch3-安装必备配置","安裝必備配置","3",3000000,{"path":3057,"stem":3058,"title":3059,"date":3021,"chapter":3060,"chapterSort":3061,"docKey":3023,"docRoot":3024,"docTitle":3025,"isWikiDoc":1003,"isWikiIndex":3028},"/zh-hant/wiki/2024-03-30-linux-jiao-cheng/ch4-ming-ling-jiao-cheng-chang-qi-ji-lei","_i18n/zh-hant/wiki/2024-03-30-Linux教程/ch4-命令教程(长期积累)","命令教程(長期積累)","4",4000000,{"path":3063,"stem":3064,"title":3065,"date":3021,"chapter":3066,"chapterSort":3067,"docKey":3023,"docRoot":3024,"docTitle":3025,"isWikiDoc":1003,"isWikiIndex":3028},"/zh-hant/wiki/2024-03-30-linux-jiao-cheng/ch5-ge-zhong-huan-jing-pei-zhi","_i18n/zh-hant/wiki/2024-03-30-Linux教程/ch5-各种环境配置","各種環境配置","5",5000000,{"path":3069,"stem":3070,"title":3071,"date":3021,"chapter":3072,"chapterSort":3073,"docKey":3023,"docRoot":3024,"docTitle":3025,"isWikiDoc":1003,"isWikiIndex":3028},"/zh-hant/wiki/2024-03-30-linux-jiao-cheng/ch6-qi-ta-ke-xuan-pei-zhi","_i18n/zh-hant/wiki/2024-03-30-Linux教程/ch6-其他可选配置","其他可選配置","6",6000000,{"path":3075,"stem":3076,"title":3077,"date":3021,"chapter":3078,"chapterSort":3079,"docKey":3023,"docRoot":3024,"docTitle":3025,"isWikiDoc":1003,"isWikiIndex":3028},"/zh-hant/wiki/2024-03-30-linux-jiao-cheng/ch7-qemu-kvm-xu-ni-ji","_i18n/zh-hant/wiki/2024-03-30-Linux教程/ch7-QEMU-KVM虚拟机","QEMU-KVM虛擬機","7",7000000,{"path":3081,"stem":3082,"title":3083,"date":3021,"chapter":3084,"chapterSort":3085,"docKey":3023,"docRoot":3024,"docTitle":3025,"isWikiDoc":1003,"isWikiIndex":3028},"/zh-hant/wiki/2024-03-30-linux-jiao-cheng/ch8-tuo-zhan-gong-neng","_i18n/zh-hant/wiki/2024-03-30-Linux教程/ch8-拓展功能","拓展功能","8",8000000,{"path":3018,"stem":3035,"title":5,"date":3021,"chapter":3019,"chapterSort":3020,"docKey":3023,"docRoot":3024,"docTitle":3025,"isWikiDoc":1003,"isWikiIndex":3028},{"path":3024,"stem":3088,"title":3025,"date":3021,"chapter":3029,"chapterSort":3089,"docKey":3023,"docRoot":3024,"docTitle":3025,"isWikiDoc":1003,"isWikiIndex":1003},"_i18n/zh-hant/wiki/2024-03-30-Linux教程/index",0,{"variants":3091},[3092,3095,3096,3099,3102],{"path":3093,"localeSlug":3094,"i18nKey":3027},"/en-us/wiki/2024-03-30-linux-jiao-cheng/ch9-qi-ta-cao-zuo","en-us",{"path":3018,"localeSlug":3031,"i18nKey":3027},{"path":3097,"localeSlug":3098,"i18nKey":3027},"/zh-hk/wiki/2024-03-30-linux-jiao-cheng/ch9-qi-ta-cao-zuo","zh-hk",{"path":3100,"localeSlug":3101,"i18nKey":3027},"/zh-tw/wiki/2024-03-30-linux-jiao-cheng/ch9-qi-ta-cao-zuo","zh-tw",{"path":3103,"localeSlug":3104,"i18nKey":3027},"/zh-cn/wiki/2024-03-30-linux-jiao-cheng/ch9-qi-ta-cao-zuo","zh-cn",[3093,3034,3018,3034,3097,3034,3100,3034,3103,3034],1780671827101]