KDE Connect簡介
KDE Connect是一個功能強大的局域網(wǎng)設備交互工具莹痢,由KDE社區(qū)開發(fā)揪漩,但支持各種Linux發(fā)行版、Android、Windows滨彻、MacOS等平臺搔确,可以實現(xiàn)設備之間的文件傳輸盅惜、剪貼板共享糙捺、通知同步、遠程控制等功能候味。我個人認為非常便利的是局域網(wǎng)高速的文件傳輸刃唤、手機和電腦剪貼板共享和消息同步,以及有人來電時電腦上彈出來電通知白群,并暫停正在播放的視頻尚胞,掛電話后又繼續(xù)的功能。具體的功能可以參考官方文檔:https://userbase.kde.org/KDEConnect/zh-han帜慢。
連接時IP地址變動的問題
KDE Connect的連接笼裳,是在移動端設備上輸入需要連接的PC或者另一移動設備的IP或者可解析到IP的域名來實現(xiàn)的。如果是家用路由器的環(huán)境粱玲,一般很少有內(nèi)網(wǎng)IP的變動躬柬,KDE Connect可以長期穩(wěn)定地連接。但是抽减,在學校允青、企業(yè)等場景,我們往往是通過DHCP獲取IP的卵沉,從而會遇到變化颠锉,每次都需要在一臺設備上查看IP地址,然后用移動設備連接史汗,這樣就很不方便琼掠。
使用ZeroTier內(nèi)網(wǎng)穿透進行連接
一種可行的方法是使用內(nèi)網(wǎng)穿透,通過虛擬局域網(wǎng)的IP地址進行連接停撞。這里比較推薦的是ZeroTier瓷蛙,其簡介和基本使用方法可以參考 https://zhuanlan.zhihu.com/p/83849371 。推薦的原因是它有PC+安卓的客戶端戈毒。但是艰猬,這種方法的不足在于安卓的ZeroTier是作為VPN服務運行的,而安卓手機上同時只能運行一個VPN服務副硅,如果同時使用其他VPN就需要反復切換姥宝。而且這也要求連接的雙方都額外運行一個內(nèi)網(wǎng)穿透服務翅萤。
使用DDNS(動態(tài)域名解析)進行連接
上面已經(jīng)提到恐疲,KDE COnnect是接受域名解析進行連接的腊满。如果使用DDNS,定期將域名解析更新為自己現(xiàn)在的IP地址(公網(wǎng)和內(nèi)網(wǎng)均可培己,但要在同一內(nèi)網(wǎng)環(huán)境下)碳蛋,就可以解決需要手動輸入IP的問題。為此省咨,我們需要兩個條件:1. 可靠且最好免費的DDNS服務提供商肃弟,這里我選擇的是 https://dynv6.com/ ,免費注冊零蓉,可以提供若干個DDNS域名笤受,支持IPV4/6地址;2. 與DDNS服務器通訊的客戶端服務敌蜂,能夠定期更新IP地址箩兽。這里我選擇的是 https://github.com/ddclient/ddclient。
Dynv6配置
Dynv6一側(cè)的操作非常簡單章喉,使用郵箱注冊汗贫,配置需要的DDNS域名就可以了。網(wǎng)站提供可以檢查當前解析的IP地址的面板秸脱,以及相關配置教程落包,其中就有一段關于ddclient的配置:
protocol=dyndns2
server=dynv6.com
login=none
password='xxx'
mydomain.dynv6.net
如果處在登錄狀態(tài),上面的password
和域名就會自動顯示為你自己的摊唇,直接復制使用即可咐蝇。不過,我們還需要進行一些修改以適應具體情況巷查。
ddclient在Linux上的配置
雖然Debian apt等包管理器中有ddclient嘹害,但是版本較舊,實測很可能有嚴重bug吮便,因此建議直接從上述GitHub倉庫中獲取最近的Release(注意不是clone倉庫笔呀,因為開發(fā)中的代碼實測也有強制使用http的bug)進行安裝。這里建議閱讀項目中的教程髓需。安裝完成后许师,我們可以在/etc/ddcleint
下編寫相應的配置文件,如新建一個ddclient.conf
僚匆。我使用的ipv4和ipv6版本分別是:
# ddclient4.conf
ssl=yes
protocol=dyndns2
use=if, if=wlp1s0
server=dynv6.com
login=none
password='xxx'
mydomain.dynv6.net
# ddclient6.conf
ssl=yes
protocol=dyndns2
use=no
usev6=ifv6, ifv6=wlp1s0
server=dynv6.com
login=none
password='xxx'
mydomain.dynv6.net
相比dynv6上的示例微渠,這里主要是根據(jù)社區(qū)中的建議,補充了ssl=yes
咧擂,以及配置了具體獲取IP地址的方法逞盆。我的網(wǎng)卡名稱為wlp1s0
,需要相應修改為自己的網(wǎng)卡名稱松申。這里獲取到的IP地址等效于執(zhí)行ifconfig wlp1s0
的效果:
wlp1s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet xxx netmask 255.255.255.0 broadcast 192.168.1.255
inet6 yyy prefixlen 64 scopeid 0x20<link>
inet6 zzz prefixlen 128 scopeid 0x0<global>
...
上面xxx
和zzz
的內(nèi)容就是IPV4/6地址云芦,可以用來檢查俯逾。
需要注意的是,ddclient還支持通過訪問url的方法查詢自己的IP舅逸,這在一般情況下是可用的桌肴,但是如果使用了VPN,遠程查到的IP就不是真實IP琉历,不能用于局域網(wǎng)連接坠七。使用這種方法的配置文件大致如下,其中web是你的IP地址查詢服務的url:
ssl=yes
protocol=dyndns2
use=web, web=https://ifconfig.co
server=dynv6.com
login=none
password='xxx'
mydomain.dynv6.net
ddclient的作者強烈建議初次配置的時候旗笔,使用如下的命令進行debug彪置,其中file參數(shù)后跟的是具體的配置文件路徑:
sudo ddclient -daemon=0 -debug -verbose -noquiet -file <conf-path>
如果確認無誤,可以根據(jù)教程在Linux上配置服務來自動更新IP蝇恶,當然也可以手動執(zhí)行命令悉稠。這樣,我們在KDE Connect中填入自己的DDNS域名就可以正常連接了艘包。
安卓手機使用Termux配置ddclient
安卓Termux上的ddclient和Linux很像但是略有不同的猛,可以參考 https://github.com/termux/termux-packages/issues/2987 進行安裝,涉及安裝Perl模塊的依賴和修改文件中的路徑以符合Termux要求想虎。安裝完成后卦尊,我們可以使用與上面類似的配置文件,但是需要注意的是舌厨,Termux上的ifconfig
, ip
等工具在沒有root的情況下只能獲取到ipv4地址岂却,需要根據(jù)自己的手機是否root來進行取舍,不過一般都可以使用ipv4地址進行連接裙椭。Termux中也沒有方便的服務管理躏哩,可以在需要的時候手動運行ddclient
來更新IP。
本文由博客一文多發(fā)平臺 OpenWrite 發(fā)布揉燃!