Termux使用的一些細節

魂祈梦發表於2024-10-22

開啟ssh

pkg i openssh
# 啟動ssh服務
sshd
# 設定密碼
passwd
# 檢視本機ip,找到wlan0或者直接找192開頭的ip
ifconfig

預設的埠是8022。
有不少教程是寫一個whoami命令,但是我實測直接使用root作為使用者名稱即可(和root許可權無關)

以下是ssh配置的路徑,有埠號等資訊

/data/data/com.termux/files/usr/etc/ssh/sshd_config

啟動時執行命令

類似於linux中bashrc。
這個路徑在手機上沒有root訪問不了,但是有曲線救國的方法,由於這個路徑是歸屬於termux的,所以termux自身可以訪問這裡面的檔案,因此我們可以在termux中訪問這個檔案。
路徑如下:

/data/data/com.termux/files/usr/etc/termux-login.sh

如你所見,這是一個sh檔案,你可以在裡面編寫shell指令碼,當你首次點開termux或者使用ssh連線到termux時,這個sh檔案就會在session中執行。
比如

sshd
# 下面這個指令碼是自定義的,用於進入一個proot的ubuntu系統
./start-ubuntu.sh

如此一來,不用手動開啟ssh了,啟動termux時就會開啟,而且會進入我的ubuntu容器環境。

啟動時執行命令(無root)

開啟termux

nano /data/data/com.termux/files/usr/etc/termux-login.sh

修改完後按Ctrl+x退出即可。

後臺問題

解決方案:
http://www.trustcomputing.com.cn/bbs//redirect.php?tid=1791&goto=lastpost

將termux掛到後臺一段時間後,會發現ssh連線不上。
是安卓的通病吧可以說,其他軟體也會有這種情況,哪怕省電策略是無限制,有著固定通知,依然會在進入後臺一段時間後停止服務。這種情況類似於墓碑機制,進後臺一段時間後進入快取,導致服務停止,比如alist的一個第三方安卓客戶端
https://github.com/jing332/AListFlutter
當我把它掛到後臺一段時間後,我便無法訪問到alist,但是當我回到應用中,會發現依然是切到後臺時的樣子,所以更類似於暫停,而非終止執行。
解決方法叫做喚醒鎖,wake lock。

image

或者在termux中執行以下命令
termux-wake-lock
參考資料:
https://wiki.termux.com/wiki/Termux-wake-lock
https://nicelee.top/blog/2019/09/08/android-linux-4/
https://cloud.tencent.com/developer/article/2354979

其他

termux的proot可玩性其實不高,實在對手機上模擬linux有興趣,可以玩玩chroot(需要root許可權),限制更少效能更高。比較簡單的方式是使用linux deploy這個軟體,或者在termux中執行tmoe簡化chroot的使用。
以及QEMU(可以淺顯地理解為像模擬器一樣的東西,會更接近實機,不過效能也會更低)。
怎麼玩都比不過電腦上直接裝linux實機,所以不要花太多時間在這個方面。

相關文章