Cara guna Claude Code dari telefon pintar anda
Jalankan Claude Code dalam sesi tmux pada VPS dan akses melalui SSH. Panduan ini menggunakan mosh untuk kestabilan data mudah alih serta konfigurasi papan kekunci terminal.
Claude Code daripada telefon anda: cara ia berfungsi sebenarnya
Panduan ini menggunakan aplikasi terminal pada telefon anda. Claude Code berjalan pada VPS (virtual private server), di dalam sesi tmux yang kekal terbuka, dan telefon anda membuka sambungan SSH (secure shell) ke sesi tersebut selagi anda melihatnya. Tutup aplikasi tersebut dan ejen akan terus berfungsi, kerana proses itu tidak pernah dijalankan pada telefon.
Claude Code juga menawarkan Remote Control: jalankan /remote-control di dalam sesi untuk menggunakannya melalui aplikasi mudah alih Claude atau pelayar web sementara proses tersebut kekal pada pelayan.
Pemisahan itu adalah keseluruhan reka bentuknya. Sistem pengendalian telefon menggantung aplikasi beberapa saat selepas anda beralih daripadanya, jadi sebarang tugas panjang yang dimulakan pada telefon akan terhenti. Ia juga mendapat alamat rangkaian baharu setiap kali anda beralih daripada wifi kepada data mudah alih. Kedua-dua masalah ini selesai apabila proses dijalankan pada pelayan dan telefon hanya memaparkan skrin.
Anda memerlukan empat perkara pada pelayan: tmux untuk mengekalkan sesi, kunci SSH untuk masuk, mosh untuk perubahan rangkaian, dan Claude Code itu sendiri. Bahagian telefon pula ialah satu aplikasi terminal dengan baris kekunci yang boleh anda capai.
Keperluan pada VPS
Sebuah pelayan Ubuntu 24.04 yang kecil sudah memadai untuk bahagian SSH dan tmux. Claude Code memerlukan spesifikasi yang lebih tinggi. Keperluan rasmi setakat Oktober 2026 ialah Ubuntu 20.04 atau lebih baharu pada pemproses x64 atau ARM64, dengan RAM sebanyak 4 GB atau lebih. Claude Code juga memerlukan akaun Claude berbayar (Pro, Max, Team atau Enterprise), akaun Console dengan akses API, atau akses melalui penyedia awan yang disokong seperti Amazon Bedrock, kerana pelan percuma Claude.ai tidak menyertakannya.
Sediakan pelayan tersebut sebagai pengguna biasa dengan sudo, bukan sebagai root. Jika pelayan itu baharu, selesaikan sepuluh minit pertama pada VPS baharu terlebih dahulu, kerana perubahan SSH dalam panduan ini lebih mudah dilakukan setelah pengguna dan firewall sedia ada.
sudo apt update && sudo apt install -y tmux mosh
curl -fsSL https://claude.ai/install.sh | bash
claude --versionPemasang meletakkan fail binari di ~/.local/bin/claude, dan claude --version akan memaparkan baris seperti 2.1.211 (Claude Code). Jika ia memaparkan command not found, direktori tersebut belum lagi berada dalam PATH anda: log keluar, log masuk semula, kemudian semak dengan command -v claude. claude doctor akan mencetak diagnostik pemasangan dan tetapan tanpa memulakan sesi.
Log masuk sekali sekarang, daripada komputer riba, sebelum anda bergantung pada telefon. Jalankan claude dalam direktori projek dan ikuti arahan log masuk. Proses ini meminta anda membuka URL dalam pelayar dan membawa kod kembali ke terminal, dan mengendalikan dua aplikasi pada skrin telefon untuk melakukan perkara tersebut adalah perlahan. Lakukan sekali pada papan kekunci sebenar dan kelayakan tersebut akan kekal pada pelayan.
Mulakan Claude Code di dalam tmux supaya sambungan yang terputus tidak mematikannya
tmux new -s claude
cd ~/projects/api
claudeNyahlampir (detach) dengan Ctrl-b dan kemudian d. tmux akan memaparkan [detached (from session claude)] dan mengembalikan shell kepada anda. Sekarang, tutup aplikasi, biarkan isyarat terputus, atau simpan telefon di dalam poket anda. Anak tetingkap (pane) tersebut akan terus berjalan.
tmux ls
tmux attach -t claudetmux ls mencetak satu baris bagi setiap sesi, contohnya claude: 1 windows (created Thu Jul 30 09:14:02 2026). tmux attach -t claude mengembalikan anda tepat ke tempat anda berhenti, termasuk suntingan yang belum selesai.
Ini berfungsi kerana tmux menjalankan proses pelayannya sendiri, dan shell serta Claude Code anda merupakan anak proses kepada pelayan tersebut, bukannya kepada sshd. Apabila sambungan SSH berakhir, kernel menghantar isyarat hangup, SIGHUP, kepada proses yang dilampirkan pada sambungan tersebut, dan pelayan tmux bukanlah salah satu daripadanya. Tanpa tmux, kunci skrin yang sama yang memutuskan sambungan anda akan menghentikan Claude Code di tengah-tengah panggilan alat (tool call). Menjalankan Claude Code pada VPS di dalam tmux membincangkan susun atur sesi dengan lebih mendalam.
Jalankan tmux pada pelayan, jangan sekali-kali pada telefon. Menaip tmux di dalam sesi yang anda sudah lampirkan akan mencetak sessions should be nested with care, unset $TMUX to force, dan memaksanya akan menyebabkan dua kekunci awalan (prefix keys) bertindih.
Lampirkan secara automatik pada setiap log masuk
Menaip arahan attach pada papan kekunci sentuh menjadi membebankan. Letakkan kod ini di penghujung ~/.profile pada pelayan:
if command -v tmux >/dev/null 2>&1 && [ -z "$TMUX" ] && [ -t 1 ]; then
exec tmux new-session -A -s claude
finew-session -A -s claude melampirkan sesi bernama claude jika ia wujud dan menciptanya jika tidak, jadi satu arahan merangkumi kedua-dua keadaan. exec menggantikan shell log masuk dengan tmux, jadi keluar daripada tmux akan menutup sambungan dan bukannya membiarkan anda pada prompt kosong. Apabila anda memerlukan shell biasa, langkau fail tersebut: ssh you@server -t "bash --noprofile".
Letakkannya dalam ~/.profile dan bukan dalam ~/.bashrc. Bash juga membaca ~/.bashrc untuk arahan SSH bukan interaktif, tetapi kawalan [ -t 1 ] di atas menghalang blok ini daripada memulakan tmux semasa pemindahan fail. Arahan permulaan yang tidak dikawal yang mencetak output akan merosakkan protokol pemindahan dengan ralat seperti Received message too long. ~/.profile berjalan untuk shell log masuk sahaja, iaitu apa yang dimaksudkan dengan sesi SSH interaktif.
~/.profile juga merupakan tempat Ubuntu menambah ~/.local/bin ke PATH. Jika claude berfungsi dengan betul selepas log masuk tetapi shell di dalam tmux menyatakan command not found, susunan tersebut adalah puncanya, jadi mulakan tmux daripada shell log masuk seperti di atas dan bukannya daripada skrip yang melangkau profil.
iOS: Termius atau Blink Shell
Kedua-dua aplikasi ini menyokong SSH dan mosh, serta menyimpan kunci di dalam aplikasi. Perbezaannya terletak pada antara muka.
Blink Shell dipacu oleh arahan. Pada prompt, anda menaip ssh you@server atau mosh you@server, menggunakan sintaks yang sama seperti terminal desktop. Tetapan dibuka dengan menaip config, dan bahagian Keys akan menjana pasangan kunci untuk anda.
Termius dipacu oleh borang. Anda perlu mengisi entri hos, kemudian menukar hos tersebut daripada SSH kepada Mosh dalam perincian hos. Termius membekalkan implementasi mosh sendiri dan menyokong mosh 1.3.0 serta versi yang lebih baharu, jadi pelayan masih perlu mempunyai pakej mosh dipasang.
Jana kunci di dalam aplikasi bagi kedua-dua kes, dan jangan sekali-kali menyalin kunci peribadi (private key) sedia ada ke dalam telefon. Aplikasi akan memaparkan bahagian kunci awam (public key), iaitu satu baris teks yang perlu anda tambah ke dalam ~/.ssh/authorized_keys pada pelayan. Kunci SSH bagi setiap peranti dan cara membatalkannya merangkumi langkah penamaan dan pembatalan, yang lebih penting bagi telefon berbanding komputer riba.
Aktifkan kunci biometrik atau kod laluan milik aplikasi terminal itu sendiri. Tanpanya, telefon yang tidak berkunci akan menjadi shell terbuka ke pelayan anda selagi skrin masih menyala.
Android: Termux
pkg upgrade
pkg install openssh mosh
ssh-keygen -t ed25519 -C "pixel"
cat ~/.ssh/id_ed25519.pubTermux membungkus OpenSSH dan mosh dalam repositori tersendiri, jadi ssh, ssh-keygen dan mosh berfungsi seperti yang dilakukan pada desktop. Tambahkan baris kunci awam yang dipaparkan ke dalam ~/.ssh/authorized_keys pada pelayan, kemudian sambungkan dengan mosh you@server.
Papan kekunci pada skrin Android tidak mempunyai kekunci Esc dan kekunci Ctrl, sedangkan Claude Code memerlukan kedua-duanya. Termux boleh memaparkan baris kekunci sendiri. Letakkan satu baris dalam ~/.termux/termux.properties:
extra-keys = [['ESC','|','/','HOME','UP','END','PGUP'],['TAB','CTRL','ALT','LEFT','DOWN','RIGHT','PGDN']]Kemudian jalankan termux-reload-settings dan baris tersebut akan muncul di atas papan kekunci. Muat semula yang sama juga akan mengesan fon TrueType monospace yang diletakkan di ~/.termux/font.ttf.
Android mungkin menghentikan Termux semasa ia berjalan di latar belakang, dan dalam kes ini, ia tidak menjejaskan apa-apa selain perlu menyambung semula. Sesi dan ejen berada pada pelayan.
Mengapa terminal terhenti apabila saya meninggalkan Wi-Fi, dan apakah yang diselesaikan oleh mosh?
Sambungan SSH ialah sambungan TCP (transmission control protocol), dan sambungan TCP dikenal pasti oleh kedua-dua alamat serta kedua-dua port. Apabila anda keluar dari julat Wi-Fi, telefon anda mendapat alamat baharu daripada rangkaian mudah alih, jadi sambungan lama tidak lagi sepadan pada kedua-dua hujung. Tiada apa-apa yang memaklumkan perkara ini. Terminal hanya berhenti bertindak balas sehingga TCP berputus asa, dan kemudian ssh mencetak client_loop: send disconnect: Broken pipe. Untuk menamatkan sesi yang terhenti dengan serta-merta, tekan Enter, kemudian ~, lalu ..
mosh (mobile shell) menghapuskan mod kegagalan tersebut. Ia menggunakan SSH sekali untuk log masuk dan memulakan proses mosh-server, membaca semula port UDP (user datagram protocol) yang dipilih oleh pelayan, dan menutup sambungan SSH. Selepas itu, kedua-dua pihak bertukar-tukar datagram UDP yang disahkan dengan kunci sesi kongsi, jadi sesi tersebut dikenal pasti oleh kunci itu dan bukannya oleh alamat anda. Alamat baharu hanya meneruskan sesi sedia ada. mosh juga memaparkan input taip anda secara setempat dan melukis semula skrin apabila pelayan tidak bersetuju, itulah sebabnya ia kekal boleh digunakan pada pautan mudah alih yang perlahan.
mosh menggunakan port UDP antara 60000 dan 61000, jadi buka julat tersebut:
sudo ufw allow 60000:61000/udp
sudo ufw statusMembuka port dengan ufw mempunyai gambaran penuh mengenai firewall. Jika pembekal anda menawarkan firewall rangkaian berasingan dalam panel kawalan mereka, tambahkan julat yang sama di sana juga, kerana peraturan ufw tidak boleh menjejaskan penapis yang berada di hadapan mesin.
Dua kegagalan mosh adalah perkara biasa. Log masuk yang berjaya tetapi kemudian terhenti, menunjukkan Nothing received from server on UDP port 60001., bermakna mosh-server telah bermula tetapi klien tidak dapat mencapainya pada port UDP tersebut. Ini biasanya bermakna firewall di suatu tempat antara telefon dan pelayan menyekat UDP dalam julat mosh. Sambungan yang melaporkan mosh-server tidak ditemui bermakna pakej tersebut tiada pada pelayan atau tiada dalam PATH log masuk. Pasang pakej tersebut, atau arahkan terus kepadanya dengan mosh --server=/usr/bin/mosh-server you@server.
Jika lokal log masuk pelayan bukan UTF-8, mosh-server mencuba tetapan lokal yang dibekalkan oleh klien dan menyemak semula. Ia hanya enggan berjalan jika itu juga gagal menyediakan UTF-8, melaporkan mosh-server needs a UTF-8 native locale to run.. Betulkan lokal pada pelayan terlebih dahulu.
locale
sudo locale-gen en_US.UTF-8
sudo update-locale LANG=en_US.UTF-8Kedua-dua hujung memerlukan lokal UTF-8, dan mosh-server juga menggunakan tetapan lokal yang dihantar oleh klien. Jika ralat masih berlaku selepas pembetulan pelayan, tetapkan LANG kepada nilai UTF-8 dalam aplikasi terminal telefon juga, yang mana FAQ mosh sendiri menyatakan mosh-client mungkin diperlukan.
Terdapat dua perkara yang tidak dilakukan oleh mosh. README-nya menyatakan bahawa mosh tidak menyokong X forwarding atau penggunaan SSH bukan interaktif, termasuk port forwarding, jadi pratonton aplikasi web yang baru dimulakan oleh Claude Code masih memerlukan ssh -L 8080:127.0.0.1:8080 you@server biasa. Ia juga hanya menyegerakkan skrin yang kelihatan, jadi ia tidak mempunyai scrollback sendiri. Had kedua itu tidak menjadi masalah di sini, kerana tmux mengekalkan scrollback: Ctrl-b kemudian [ memasuki mod salin, seretan atau kekunci anak panah akan menatal, dan q akan keluar.
Menjadikan skrin telefon boleh digunakan
Empat baris dalam ~/.tmux.conf pada pelayan melakukan kebanyakan kerja tersebut:
set -g mouse on
set -g status-position top
set -g default-terminal "tmux-256color"
set -g history-limit 20000mouse on menukar seretan sentuh kepada tatalan dan ketikan kepada pemilihan anak tetingkap atau tetingkap, yang menggantikan kebanyakan kekunci awalan yang sukar ditaip. status-position top mengalihkan bar status tmux dari pinggir bawah, tempat papan kekunci pada skrin dan bar cadangannya menutup bar tersebut. default-terminal menyematkan nama terminal yang diumumkan oleh tmux kepada Claude Code. Tanpa baris itu, tmux mengumumkan apa sahaja nama yang dipilih oleh binaannya. Skrip konfigurasi tmux 3.4 bermula daripada screen, kemudian menguji screen-256color, tmux dan tmux-256color mengikut urutan tersebut, dan ujian yang gagal akan mengekalkan pilihan sebelumnya. Binaaan yang tidak dapat mencari entri terminfo tmux-256color oleh itu akan berakhir dengan tmux, screen-256color atau screen biasa, dan warna serta lukisan kotak mungkin kelihatan lebih teruk daripada yang sepatutnya.
Pelajari empat kekunci dan selebihnya akan menjadi selesa.
Escmengganggu Claude di pertengahan respons dan mengekalkan kerja yang telah siap, jadi ia adalah kekunci yang anda mahu letakkan paling dekat dengan ibu jari anda.Ctrl+Cjuga mengganggu operasi yang sedang berjalan. Pada gesaan melahu, tekan kali pertama akan mengosongkan input dan tekan kali kedua akan keluar daripada Claude Code, jadi ia adalah alat yang lebih kasar.Escsebanyak dua kali akan mengosongkan draf gesaan, dan pada gesaan kosong ia membuka menu undur (rewind) sebaliknya.- Untuk gesaan berbilang baris, taip
\dan kemudian Enter. Bentuk itu berfungsi dalam setiap terminal. Shift+Enter hanya bersifat natif dalam senarai pendek terminal desktop, dan klien mudah alih tidak termasuk di dalamnya.
Elakkan anak tetingkap berpecah (split panes). Telefon dalam mod potret adalah sekitar 40 lajur lebar, jadi pecahan menegak meninggalkan 20 lajur setiap anak tetingkap dan setiap diff akan melilit menjadi gangguan. Gunakan tetingkap tmux sebaliknya: Ctrl-b c mencipta satu dan Ctrl-b n bergerak ke tetingkap seterusnya. Jika tetingkap kedua akhirnya memegang sesi Claude Code sendiri, kedua-dua sesi boleh menyerahkan kerja antara satu sama lain secara terus dan bukannya anda menyalin teks antara tetingkap pada skrin sentuh. Pusingkan telefon ke sisi apabila anda perlu membaca diff dengan betul.
Jumlah teks yang dipaparkan pada skrin itu perlu ditetapkan dengan sengaja, kerana gaya output menyunting gesaan sistem di sebalik setiap balasan dan gaya yang lebih ringkas bermakna lebih sedikit skrin yang perlu ditatal pada telefon.
Sesi yang panjang pada skrin kecil kebanyakannya adalah masalah konteks, jadi mengurus tetingkap konteks Claude Code adalah berbaloi untuk dibaca sebelum anda cuba menjalankan kerja sehari penuh dari dalam kereta api.
Kunci akses: hanya kunci, tiada kata laluan
Telefon anda kini menyimpan kunci untuk mesin yang menyunting kod dan menjalankan arahan. Matikan pengesahan kata laluan. Fail drop-in adalah lebih selamat daripada menyunting sshd_config secara terus, kerana sshd_config pada Ubuntu menyertakan /etc/ssh/sshd_config.d/*.conf di bahagian atas dan nilai pertama yang ditemui bagi sesuatu tetapan adalah yang akan digunakan.
sudo tee /etc/ssh/sshd_config.d/00-phone.conf >/dev/null <<'EOF'
PasswordAuthentication no
KbdInteractiveAuthentication no
PubkeyAuthentication yes
PermitRootLogin no
EOF
sudo sshd -t && sudo systemctl reload sshFail drop-in dibaca mengikut susunan nama fail. Semak sudo sshd -T untuk passwordauthentication no, kbdinteractiveauthentication no, pubkeyauthentication yes dan permitrootlogin no; fail terdahulu yang menetapkan salah satu daripada ini akan diutamakan dan perlu diperbetulkan di sana.
sshd -t menghuraikan konfigurasi dan tidak mencetak apa-apa jika ia sah. Abaikan langkah ini dan satu kesilapan taip bermakna sshd gagal semasa dimuat semula. Pastikan sesi kerja anda terbuka dan buat ujian daripada sambungan kedua sebelum anda menutup apa-apa, kerana kunci yang salah kini akan memberikan anda Permission denied (publickey). dan, dengan kata laluan dimatikan, tiada jalan keluar. Laluan pemulihan pada ketika itu adalah konsol pembekal anda. Jika sambungan ujian itu gagal, sambung semula dengan ssh -v dan selesaikan masalah tersebut sementara sesi pertama masih terbuka, kerana mesej ralat tersebut merangkumi lima kerosakan berasingan dan output verbose memberitahu anda yang mana satu daripadanya yang anda hadapi.
Berikan setiap peranti kuncinya sendiri. Kehilangan telefon bermakna memadam satu baris daripada ~/.ssh/authorized_keys, dan komputer riba anda terus berfungsi. Satu kunci yang dikongsi bermakna anda perlu menukar kunci pada setiap peranti yang anda miliki.
Jika anda memindahkan SSH ke port lain pada Ubuntu 24.04, ambil perhatian bahawa pendengar (listener) adalah milik ssh.socket. Penjana systemd membina soket tersebut daripada baris Port dalam konfigurasi SSH anda, jadi anda tidak memerlukan penggantian ListenStream, tetapi memulakan semula ssh sahaja akan menyebabkan pelayan terus mendengar pada port 22. Letakkan baris Port dalam fail drop-in, benarkan port baharu dalam ufw, kemudian jalankan sudo systemctl daemon-reload diikuti dengan sudo systemctl restart ssh.socket. Mengeraskan SSH pada VPS merangkumi perkara itu dan bahagian permukaan yang lain.
fail2ban untuk SSH menambah sedikit keselamatan sebaik sahaja kata laluan dimatikan, kerana kata laluan yang diteka tidak boleh diterima sama sekali. Apa yang ia tambah ialah log yang senyap, yang menjadikan percubaan log masuk sebenar mudah dikesan.
Pilihan yang lebih kukuh adalah dengan memastikan SSH tidak terdedah kepada internet awam. Letakkan pelayan di belakang VPN WireGuard yang anda hoskan sendiri, aktifkan tunnel pada telefon apabila diperlukan, dan berikan sshd ListenAddress pada tunnel sahaja. mosh berfungsi melalui tunnel kerana kedua-dua pihak menggunakan UDP. Satu peringatan: tunnel menambah overhead paket, jadi jika pemindahan besar terhenti, rendahkan MTU (maximum transmission unit) dalam konfigurasi WireGuard telefon.
Satu perkara terakhir tentang bekerja dengan cara ini. Dari telefon, anda meluluskan gesaan kebenaran pada skrin yang memaparkan beberapa baris diff pada satu masa. Itu adalah sebab untuk mengekalkan kawalan keselamatan dan bukannya mematikannya. Semak juga mod kebenaran yang digunakan semasa sesi anda bermula, kerana mod auto kini merupakan mod permulaan terbina dalam untuk sesi terminal interaktif daripada Claude Code v2.1.283, dan ia melakukan penyuntingan fail dalam direktori kerja tanpa berhenti untuk bertanya kepada anda. Menjalankan Claude Code dengan selamat pada VPS merangkumi had pengguna dan direktori yang perlu ditetapkan sebelum cara utama anda masuk adalah melalui skrin sentuh.
Apabila anda menyambung semula dan berlaku masalah
tmux attach printing no server running on /tmp/tmux-1000/default bermaksud tmux tidak menemui pelayan pada soket tersebut. Biasanya pelayan telah tiada, yang hampir selalu bermaksud mesin telah but semula. Semak dengan uptime. Jika mesin tidak but semula dan pgrep tmux masih menunjukkan pelayan, itu sahaja tidak bermaksud fail soket telah dipadamkan, kerana flag -L dan -S membenarkan pelayan mendengar pada soket yang berbeza. Jika anda memulakan tmux dengan salah satu daripadanya, berikan flag yang sama kepada tmux attach. Jika soket benar-benar dialih keluar secara tidak sengaja, pkill -USR1 tmux meminta pelayan untuk menciptanya semula, yang mana manual tmux menyatakan akan gagal jika mana-mana direktori induk tiada. Kemas kini kernel daripada kemas kini keselamatan automatik memerlukan but semula untuk berkuat kuasa, tetapi unattended-upgrades hanya but semula secara automatik apabila Unattended-Upgrade::Automatic-Reboot didayakan; tetapan lalainya ialah false. Mesin yang telah but semula tidak mempunyai sesi tmux, jadi anggap sebarang pelaksanaan Claude Code sebagai sesuatu yang boleh anda mulakan semula.
can't find session: claude adalah berbeza. Pelayan tmux sedang berjalan tetapi nama itu tiada di sana. tmux ls menunjukkan apa yang sebenarnya wujud.
Jika anda menyambung dan mendapati prompt shell biasa di tempat Claude Code sepatutnya berada, proses tersebut telah tamat tanpa sesi itu berakhir. Lihat dmesg -T | tail untuk baris seperti Out of memory: Killed process 4821 (claude), yang mengesahkan pembunuhan akibat kehabisan memori (out-of-memory kill). Semak skrol balik shell di atas prompt untuk mesej keluar yang lain.
Tetingkap yang kembali dengan saiz yang salah, terpotong di tepi atau dengan ruang kosong di sekelilingnya, bermaksud dua klien disambungkan pada saiz yang berbeza. Secara lalai, tmux 3.4 menetapkan saiz tetingkap mengikut klien dengan aktiviti paling terkini (window-size latest), jadi komputer riba anda, yang masih disambungkan pada lebar 200 kolum, dan telefon pada 40 kolum akan mengubah saiznya secara bergilir-gilir. Putuskan sambungan yang lain semasa anda menyambung: tmux attach -d -t claude.
FAQ
Bolehkah saya menjalankan Claude Code pada telefon dan bukannya pada VPS?
CLI terminal tidak disokong pada Android atau iOS. Platform yang disokong setakat Oktober 2026 ialah macOS, Windows, Ubuntu 20.04 atau lebih baharu, Debian 10 atau lebih baharu, dan Alpine 3.19 atau lebih baharu, dengan RAM 4 GB atau lebih. Android dan iOS tidak termasuk dalam senarai tersebut. Telefon juga akan meletakkan aplikasi dalam mod tidur dan menukar alamat rangkaian secara berterusan, yang mana tidak boleh ditoleransi oleh proses ejen yang berjalan lama. Jalankan ia pada pelayan dan gunakan telefon sebagai paparan sahaja.
Adakah sesi akan bertahan jika saya menutup aplikasi atau kehilangan isyarat?
Ya, dan dua komponen berasingan melakukan kerja tersebut. tmux memastikan proses terus berjalan pada pelayan, jadi tiada apa yang terhenti apabila sambungan berakhir. mosh memastikan sambungan itu sendiri kekal aktif walaupun berlaku perubahan alamat, jadi bertukar daripada wifi kepada data mudah alih tidak memerlukan anda menyambung semula. Dengan SSH biasa tanpa tmux, sambungan yang terputus akan menghantar SIGHUP dan Claude Code akan berhenti di tengah-tengah tugasan.
Mengapa mosh bersambung tetapi tidak memaparkan apa-apa?
Log masuk yang berjaya tetapi terhenti dengan Nothing received from server on UDP port 60001. bermakna klien tidak dapat mencapai mosh-server pada port UDP tersebut, yang biasanya bermakna firewall menyekat UDP 60000 hingga 61000. Tambahkan julat tersebut dalam ufw, dan tambahkannya sekali lagi dalam firewall rangkaian pembekal anda, yang merupakan kawalan berasingan pada kebanyakan panel. Jika mosh sebaliknya melaporkan bahawa mosh-server tidak ditemui, pelayan kekurangan pakej tersebut atau log masuk PATH anda tidak menyertakannya: pasang dengan sudo apt install mosh, atau gunakan mosh --server=/usr/bin/mosh-server you@server.
Bagaimanakah cara saya menghentikan Claude Code daripada papan kekunci yang tiada kekunci Esc?
Tambahkan baris kekunci. Termux mengkonfigurasi satu baris dengan extra-keys dalam ~/.termux/termux.properties, manakala Termius dan Blink kedua-duanya menyediakan baris yang boleh anda edit dalam tetapan. Esc menghentikan respons yang sedang berjalan dan mengekalkan kerja yang telah siap. Ctrl+C juga menghentikan proses, tetapi menekannya dua kali pada prompt terbiar akan mengeluarkan anda daripada Claude Code, jadi gunakan Esc terlebih dahulu.
Adakah membuka SSH ke internet cukup selamat untuk tujuan ini?
Dengan pengesahan kata laluan dimatikan, satu-satunya kelayakan yang boleh berjaya ialah kunci yang tidak pernah meninggalkan peranti anda, yang merupakan risiko munasabah untuk mesin yang boleh anda bina semula. Berikan setiap peranti kunci sendiri supaya telefon yang hilang hanya menyebabkan anda membuang satu baris dalam authorized_keys. Jika anda lebih suka untuk tidak menjawab pada port awam sama sekali, letakkan mesin di belakang WireGuard dan biarkan sshd mendengar pada alamat tunnel.