termux-connecting 1.1.16 → 1.1.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bin/termux-connect-pc +21 -6
- package/bin/termux-connecting +68 -22
- package/package.json +1 -1
package/bin/termux-connect-pc
CHANGED
|
@@ -17,11 +17,26 @@ title() { echo -e "\n${CYAN}━━━ $1 ━━━${NC}\n"; }
|
|
|
17
17
|
|
|
18
18
|
prompt() {
|
|
19
19
|
local val default="$2"
|
|
20
|
-
echo -n "$1${default:+ [$default]}: "
|
|
20
|
+
echo -n "$1${default:+ [$default]}: " >&2
|
|
21
21
|
read -r val
|
|
22
22
|
echo "${val:-$default}"
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
has_timeout() {
|
|
26
|
+
command -v timeout >/dev/null 2>&1 || command -v gtimeout >/dev/null 2>&1
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
run_timeout() {
|
|
30
|
+
local sec="$1"; shift
|
|
31
|
+
if command -v timeout >/dev/null 2>&1; then
|
|
32
|
+
timeout "$sec" "$@"
|
|
33
|
+
elif command -v gtimeout >/dev/null 2>&1; then
|
|
34
|
+
gtimeout "$sec" "$@"
|
|
35
|
+
else
|
|
36
|
+
"$@"
|
|
37
|
+
fi
|
|
38
|
+
}
|
|
39
|
+
|
|
25
40
|
load_active() {
|
|
26
41
|
if [ -f "$CONFIG_FILE" ]; then
|
|
27
42
|
ACTIVE_DEVICE=$(cat "$CONFIG_FILE")
|
|
@@ -149,7 +164,7 @@ cmd_connection() {
|
|
|
149
164
|
local connected=false
|
|
150
165
|
|
|
151
166
|
# Key-based
|
|
152
|
-
if
|
|
167
|
+
if run_timeout 10 ssh -o ConnectTimeout=5 -o BatchMode=yes -p "$SSH_PORT" "${SSH_USER}@${SSH_HOST}" "echo connected"; then
|
|
153
168
|
info "Koneksi berhasil (key-based)"
|
|
154
169
|
connected=true
|
|
155
170
|
# Password via sshpass
|
|
@@ -157,7 +172,7 @@ cmd_connection() {
|
|
|
157
172
|
echo " SSH key tidak dikenali. Coba dengan password..."
|
|
158
173
|
local pass
|
|
159
174
|
pass=$(prompt " ➤ Password SSH" "")
|
|
160
|
-
if
|
|
175
|
+
if run_timeout 10 sshpass -p "$pass" ssh -o StrictHostKeyChecking=no -o ConnectTimeout=5 -p "$SSH_PORT" "${SSH_USER}@${SSH_HOST}" "echo connected"; then
|
|
161
176
|
info "Koneksi berhasil (password)"
|
|
162
177
|
connected=true
|
|
163
178
|
fi
|
|
@@ -169,7 +184,7 @@ cmd_connection() {
|
|
|
169
184
|
echo " ssh -p ${SSH_PORT} ${SSH_USER}@${SSH_HOST}"
|
|
170
185
|
echo ""
|
|
171
186
|
echo -n " ➤ Setelah berhasil, tekan enter untuk lanjut..."; read -r
|
|
172
|
-
if
|
|
187
|
+
if run_timeout 10 ssh -o ConnectTimeout=5 -o BatchMode=yes -p "$SSH_PORT" "${SSH_USER}@${SSH_HOST}" "echo connected"; then
|
|
173
188
|
connected=true
|
|
174
189
|
fi
|
|
175
190
|
fi
|
|
@@ -207,7 +222,7 @@ cmd_connection() {
|
|
|
207
222
|
if [ -f "$SSH_KEY" ]; then
|
|
208
223
|
echo ""
|
|
209
224
|
echo " Meng-copy public key ke HP..."
|
|
210
|
-
if
|
|
225
|
+
if run_timeout 15 ssh-copy-id -o StrictHostKeyChecking=no -o ConnectTimeout=10 -p "$SSH_PORT" "${SSH_USER}@${SSH_HOST}"; then
|
|
211
226
|
info "Public key berhasil di-copy ke HP"
|
|
212
227
|
else
|
|
213
228
|
warn "Gagal copy otomatis. Copy manual:"
|
|
@@ -333,7 +348,7 @@ cmd_check() {
|
|
|
333
348
|
echo "Device: ${ACTIVE_DEVICE} (${SSH_USER}@${SSH_HOST}:${SSH_PORT})"
|
|
334
349
|
echo ""
|
|
335
350
|
|
|
336
|
-
if
|
|
351
|
+
if run_timeout 10 ssh -o ConnectTimeout=5 -o BatchMode=yes "$ACTIVE_DEVICE" "echo connected"; then
|
|
337
352
|
info "Koneksi OK"
|
|
338
353
|
echo ""
|
|
339
354
|
info "Gunakan ssh $ACTIVE_DEVICE untuk koneksi"
|
package/bin/termux-connecting
CHANGED
|
@@ -124,8 +124,22 @@ else
|
|
|
124
124
|
fi
|
|
125
125
|
fi
|
|
126
126
|
|
|
127
|
-
# ─── 5.
|
|
128
|
-
title "4.
|
|
127
|
+
# ─── 5. SSH Server ───
|
|
128
|
+
title "4. Cek SSH Server (sshd)"
|
|
129
|
+
if pgrep -x sshd >/dev/null; then
|
|
130
|
+
info "sshd sudah berjalan"
|
|
131
|
+
else
|
|
132
|
+
echo " sshd belum jalan. Menjalankan..."
|
|
133
|
+
if sshd; then
|
|
134
|
+
info "sshd berhasil dijalankan"
|
|
135
|
+
else
|
|
136
|
+
error "Gagal menjalankan sshd"
|
|
137
|
+
echo " Coba manual: sshd"
|
|
138
|
+
fi
|
|
139
|
+
fi
|
|
140
|
+
|
|
141
|
+
# ─── 6. Informasi Koneksi ───
|
|
142
|
+
title "5. Informasi Koneksi"
|
|
129
143
|
USERNAME=$(whoami)
|
|
130
144
|
|
|
131
145
|
IP=""
|
|
@@ -142,31 +156,63 @@ if [ -z "$IP" ] && [ -d /data/data/com.termux ]; then
|
|
|
142
156
|
IP=$(ip route get 1.1.1.1 | awk '{print $7}' | head -1)
|
|
143
157
|
fi
|
|
144
158
|
if [ -z "$IP" ]; then
|
|
145
|
-
IP="
|
|
159
|
+
IP=""
|
|
146
160
|
fi
|
|
147
161
|
|
|
162
|
+
is_cgnat() {
|
|
163
|
+
[[ "$1" =~ ^10\. ]] || [[ "$1" =~ ^100\.(6[4-9]|[7-9][0-9]|1[0-1][0-9]|12[0-7])\. ]]
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
is_wifi() {
|
|
167
|
+
[[ "$1" =~ ^192\.168\. ]] || [[ "$1" =~ ^172\.(1[6-9]|2[0-9]|3[01])\. ]]
|
|
168
|
+
}
|
|
169
|
+
|
|
148
170
|
echo " Username : $USERNAME"
|
|
149
|
-
echo " IP : $IP"
|
|
171
|
+
echo " IP : ${IP:-tidak terdeteksi}"
|
|
150
172
|
echo " Port : 8022"
|
|
151
173
|
echo ""
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
echo ""
|
|
156
|
-
echo "
|
|
157
|
-
echo "
|
|
158
|
-
echo ""
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
echo "
|
|
163
|
-
echo ""
|
|
164
|
-
echo "
|
|
165
|
-
echo "
|
|
166
|
-
echo "
|
|
167
|
-
echo "
|
|
168
|
-
echo "
|
|
169
|
-
echo "
|
|
174
|
+
|
|
175
|
+
if [ -z "$IP" ]; then
|
|
176
|
+
warn "IP tidak terdeteksi"
|
|
177
|
+
echo " Pastikan HP terhubung ke WiFi, bukan data seluler."
|
|
178
|
+
echo ""
|
|
179
|
+
echo " Langkah:"
|
|
180
|
+
echo " 1. Buka Pengaturan → WiFi, hubungkan ke jaringan rumah/kantor"
|
|
181
|
+
echo " 2. Setelah terhubung, jalankan ulang: termux-connecting -y"
|
|
182
|
+
elif is_cgnat "$IP"; then
|
|
183
|
+
warn "IP ${IP} terdeteksi sebagai jaringan SELULER/VPN"
|
|
184
|
+
echo " PC dan HP harus dalam jaringan WiFi yang SAMA."
|
|
185
|
+
echo ""
|
|
186
|
+
echo " Langkah:"
|
|
187
|
+
echo " 1. Matikan data seluler dan VPN di HP"
|
|
188
|
+
echo " 2. Buka Pengaturan → WiFi, hubungkan ke jaringan yang sama dengan PC"
|
|
189
|
+
echo " 3. Catat IP yang muncul (biasanya 192.168.x.x)"
|
|
190
|
+
echo " 4. Jalankan ulang: termux-connecting -y"
|
|
191
|
+
echo " 5. Atau cek IP manual: ip a | grep wlan"
|
|
192
|
+
elif is_wifi "$IP"; then
|
|
193
|
+
echo " Di PC/Mac, jalankan perintah berikut:"
|
|
194
|
+
echo " npm i -g termux-connecting"
|
|
195
|
+
echo " termux-connect-pc"
|
|
196
|
+
echo ""
|
|
197
|
+
echo " Lalu isi data di atas saat diminta."
|
|
198
|
+
echo " Setelah setup, cukup: ssh ${HOST_ALIAS:-termux-a8star}"
|
|
199
|
+
echo ""
|
|
200
|
+
warn "Pastikan HP dan PC terhubung ke jaringan WiFi YANG SAMA"
|
|
201
|
+
echo ""
|
|
202
|
+
echo " Data koneksi — simpan untuk setup PC:"
|
|
203
|
+
echo " ┌─────────────────────────────┐"
|
|
204
|
+
echo " │ Username : $USERNAME │"
|
|
205
|
+
echo " │ IP : $IP │"
|
|
206
|
+
echo " │ Port : 8022 │"
|
|
207
|
+
echo " └─────────────────────────────┘"
|
|
208
|
+
else
|
|
209
|
+
warn "IP ${IP} tidak dikenal — mungkin bukan jaringan lokal"
|
|
210
|
+
echo " Pastikan HP terhubung ke WiFi, bukan data seluler."
|
|
211
|
+
echo ""
|
|
212
|
+
echo " Cek koneksi WiFi: ip a | grep wlan"
|
|
213
|
+
echo " Jika IP masih ${IP}, mungkin HP menggunakan VPN/proxy."
|
|
214
|
+
echo " Matikan VPN dan coba lagi: termux-connecting -y"
|
|
215
|
+
fi
|
|
170
216
|
echo ""
|
|
171
217
|
|
|
172
218
|
echo "----------------------------------------"
|