NoteAfterNote-14
Using stunnel for secure Network File System (NFS) communication between NFS servers and clients: UNFS3 NFS Server unfsd as a native Termux executable on a smartphone running the Android 14 operating system (OS) and GNU/Linux NFS servers running the Fedora Linux operating system
Published: October 9, 2026
Link: https://gist.github.com/NoteAfterNote/cbf4bc7c21a6a517146b3d3c12643cba
stunnel documentation -- "The stunnel program is designed to work as TLS encryption wrapper between remote clients and local (inetd-startable) or remote servers. The concept is that having non-TLS aware daemons running on your system you can easily set them up to communicate with clients over secure TLS channels.": https://www.stunnel.org/manual.html , https://www.stunnel.org
"Using stunnel to Encrypt Database Connections" -- "PKS (shared keys)": https://dave.heebner.us/2017/07/09/using-stunnel-to-encrypt-database-connections/ , https://web.archive.org/web/20260923175621/dave.heebner.us/2017/07/09/using-stunnel-to-encrypt-database-connections/ , https://archive.ph/GMDaG
"Sending redis traffic through an SSL tunnel with stunnel": https://web.archive.org/web/20201028200332/bencane.com/2014/02/18/sending-redis-traffic-through-an-ssl-tunnel-with-stunnel/
"Encrypting TCP Traffic Without Changing Your App using "stunnel"" "'In modern systems, security is no longer optional. Many legacy or lightweight applications still communicate over plain TCP without encryption. This is where stunnel becomes extremely useful.": https://www.codingcipher.com/post/encrypting-tcp-traffic-without-changing-your-app-using-stunnel , https://archive.ph/WFypa , https://web.archive.org/web/20260923174845/www.codingcipher.com/post/encrypting-tcp-traffic-without-changing-your-app-using-stunnel
"stunnel TCP keepalive Settings Preventing Firewall from Blocking Log Traffic": https://www.neteye-blog.com/blog/2023/10/12/stunnel-tcp-keepalive-settings-preventing-firewall-from-blocking-log-traffic/ , https://archive.ph/P5Hbg , https://web.archive.org/web/20260920204443/www.neteye-blog.com/blog/2023/10/12/stunnel-tcp-keepalive-settings-preventing-firewall-from-blocking-log-traffic/
"Stunnel HOWTO" -- "Pre-shared keys": https://www.stunnel.org/howto.html
"Pre-Shared Keys" (PSK) in the "Authentication" documentation: https://www.stunnel.org/auth.html ; https://www.stunnel.org/manual.html (stunnel "Manual Page") ; https://www.stunnel.org -- "PSK files must be neither world-readable nor world-writable. Transfer them over an authenticated confidential channel, never send them in email or include them in logs, and keep them out of source control. If a client key is compromised, revoke it by removing only that identity from the server file and reloading stunnel. Reusing one key across clients removes this advantage."
"stunnel change log" -- "ASCII PSK secrets": https://www.stunnel.org/NEWS.html
"Commit 9c13b49" "Increase PSK_MAX_IDENTITY_LEN from 128 to 256": https://github.com/openssl/openssl/commit/9c13b49a9f22d91c7f0576377975157f4f67984c
- "Resuming PSK session options failing 3.0.0-beta1 #15951": openssl/openssl#15951
openssl documentation: https://docs.openssl.org/master/man1/openssl/
-
OpenSSL: https://openssl.org , https://github.com/openssl/openssl , https://openssl-library.org, https://openssl-library.org/community/mailinglists/
-
openssl-rand documentation --"openssl rand -hex 32": https://docs.openssl.org/master/man1/openssl-rand/
$ pwgen -1 --symbols --capitalize 64 2
iePhohxoojoh!y5hiejohCh8coiqu\ei8eib5pah^Haad2ya#gh8bee[Weexi=u5
ei1sei4teeje&L0ge8aish7suo4cie9aewei!z9ooS6ohsei2aheegaed4Uubie$
$ pwgen -1 --symbols --capitalize 64 1
ca6Oos9ooya#xei1cheid2unel0yaH1choo:F1eecai@c9kae?ngu3reegi6faid
$ openssl rand -hex 32
bd9fd7bd6d7a5e8c908f07a3b7433e46fec5dee95cd3587c28ff69735785e2df
$ openssl rand -hex 32
e449a40a3369f4db9ea0e964bc2c7cad6d7e080c576a6a4f4c85f2658dcebbbe
Client-1
- echo "client1:$(pwgen -1 --symbols --capitalize 200 1)" > client1.psk
Client-2
- echo "client2:$(pwgen -1 --symbols --capitalize 200 1)" > client2.psk
Client-3
- echo "client3:$(openssl rand -hex 100)" > client3.psk
Client-4
- echo "client4:$(openssl rand -hex 100)" > client4.psk
Fedora Linux, NFS Server-1, stunnel-C: client3.psk
- cat client3.psk > stunnel-C-server.psk
Fedora Linux, NFS Server-2, stunnel-A: client1.psk
- cat client1.psk > stunnel-A-server.psk
Smartphone-A, NFS Server-3, stunnel-B: client4.psk, client2.psk
- cat client4.psk client2.psk > stunnel-B-server.psk
chmod go-rwx client1.psk client2.psk client3.psk client4.psk
chmod go-rwx stunnel-B-server.psk stunnel-A-server.psk stunnel-C-server.psk
@@@@@@@@@@@@@@
@ @
@ Internet @
@ @
@@@@@@@@@@@@@@
|
@
|
-------@------
| Router |
-------@------
|
@
|
@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ @
@ Network: 192.168.1.0/24 @-@-@-@-@-@-@
@ @ |
@@@@@@@@@@@@@@@@@@@@@@@@@@@ @
| |
@ @
| |
-------@------------------------ ---@----------------------------
| Fedora Linux: Server-1 | | Fedora Linux: Server-2 |
| IP Address 1: 192.168.70.200 | | IP Address 1: 192.168.1.100 |
| IP Address 2: 192.168.1.115 | | |
| Act As A Router: No | | |
| | | |
| | | |
| | | |
---------------------------@---- --------------------------------
|
@
|
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ @
@ Network: 192.168.70.0/24 @
@ Access to Internet: No @
@ Access to 192.168.1.0/24: No @
@ @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
| |
@ @
| |
---------------------------@--- --------@----------------------
| Smartphone-A | | Smartphone-B |
| IP Address: 192.168.70.80 | | IP Address: 192.168.70.40 |
| | | |
| | | |
| | | |
------------------------------- -------------------------------
"Termux application": https://github.com/termux/termux-app
"UNFS3, a User-Space NFSv3 Server": https://github.com/unfs3/unfs3
"[Package]: unfs3 #19325": termux/termux-packages#19325 (https://github.com/termux/termux-packages/issues/19325 , "[Package]: unfs3 #19325")
Obtain the UNFS3 NFS server (version 0.11.0) as a native application (executable) in Termux: termux/termux-packages#31548 (comment) (https://github.com/termux/termux-packages/issues/31548#issuecomment-5856314323) in "Information: Starting with libnfs version 7.0.2 nfs-ls, nfs-stat, nfs-cp, and nfs-cat can be successfully used for Network File System (NFS) file operations between Android devices with a UNFS3 NFS server. #31548" -- "Android 14 aarch64" (64-bit operating system), "Android 11 armv7l" (32-bit operating system), "Android 10 armv8l" (32-bit operating system): termux/termux-packages#31548
-
64-bit operating system (OS), "Android 14 aarch64": termux/termux-packages#19325 (comment) (
https://github.com/termux/termux-packages/issues/19325#issuecomment-5617255926) in termux/termux-packages#19325 (https://github.com/termux/termux-packages/issues/19325, "[Package]: unfs3 #19325") -
32-bit OS, "Android 11 armv7l": termux/termux-packages#19325 (comment) (
https://github.com/termux/termux-packages/issues/19325#issuecomment-5638297245) in termux/termux-packages#19325 (https://github.com/termux/termux-packages/issues/19325, "[Package]: unfs3 #19325") -
32-bit OS, "Android 10 armv8l": termux/termux-packages#19325 (comment) (
https://github.com/termux/termux-packages/issues/19325#issuecomment-5652503755) in termux/termux-packages#19325 (https://github.com/termux/termux-packages/issues/19325, "[Package]: unfs3 #19325")
"unfsd" documentation :https://github.com/unfs3/unfs3/blob/master/unfsd.8
- "unfs3 mount-time password support" documentation: https://github.com/unfs3/unfs3/blob/master/doc/passwords.txt
On Smartphone-A: "./unfsd -t -n 2048 -m 2048 -p -d -e $HOME/exports-test2 $HOME/unfsd-server-1-pid.txt" or "./unfsd -t -n 2048 -m 2048 -p -e $HOME/exports-test2 -i $HOME/pid-unfsd-server-1.txt" (runs in the background)
- $HOME/exports-test2: /storage/emulated/0/test 127.0.0.1(rw,insecure,removable)
~ $ cd $HOME/unfs3-0.11.0 ; pwd
/data/data/com.termux/files/home/unfs3-0.11.0
~/unfs3-0.11.0 $ ./unfsd -h
UNFS3 unfsd 0.11.0 (C) 2003-2025, various authors
Usage: ./unfsd [options]
-h display this short option summary
-u use unprivileged port for services
-d do not detach from terminal
-e <file> file to use instead of /etc/exports
-i <file> write daemon pid to given file
-n <port> port to use for NFS service
-m <port> port to use for MOUNT service
-t TCP only, do not listen on UDP ports
-p do not register with portmap/rpcbind
-s single user mode
-b enable brute force file searching
-l <addr> bind to interface with specified address
-r report unreadable executables as readable
-3 truncate fileid and cookie to 32 bits
-T test exports file and exit
~ $ neofetch --stdout | grep OS
OS: Android 14 aarch64
~/unfs3-0.11.0 $ stunnel -version 2>&1 | head -3
Initializing inetd mode configuration
stunnel 5.82 on aarch64-unknown-linux-android platform
Compiled with OpenSSL 3.6.3 9 Jun 2026
"LIBNFS is a client library for accessing NFS shares over a network." --nfs-cat, nfs-cp, nfs-ls, nfs-stat: https://github.com/sahlberg/libnfs/ ; https://github.com/sahlberg/libnfs/blob/master/doc/nfs-cat.1 , https://github.com/sahlberg/libnfs/blob/master/doc/nfs-cp.1 , https://github.com/sahlberg/libnfs/blob/master/doc/nfs-ls.1
;;;;;;
; Configuration file for Smartphone-A: stunnel-psk-termux-Smartphone-A-conf.txt
; On Smartphone-A: stunnel stunnel-psk-termux-Smartphone-A-conf.txt
;foreground = yes
;debug = debug
;log = append
pid = /data/data/com.termux/files/home/pid-Smartphone-A.txt
output = /data/data/com.termux/files/home/log-stunnel-Smartphone-A.txt
[Android-Termux-Smartphone-A-unfs3-NFS-Server-3-stunnel-B]
;
; Android phones: nfs-cp source-file 'nfs://127.0.0.1/storage/emulated/0/test/destination-file?mountport=2048&nfsport=2048'
;
client = no
socket = l:SO_KEEPALIVE=1
socket = r:SO_KEEPALIVE=1
socket = a:TCP_KEEPINTVL=10
socket = a:TCP_KEEPIDLE=15
TIMEOUTclose = 0
accept = 0.0.0.0:20020
connect = 127.0.0.1:2048
PSKsecrets = /data/data/com.termux/files/home/stunnel-B-server.psk
sslVersionMin = TLSv1.3
[Android-Termux-Smartphone-A-Client-4-stunnel-C-connects-to-the-Fedora-Linux-NFS-Server-1-stunnel-C]
;
; nfs-cp 'nfs://127.0.0.1/mnt/nfs-test/source-file??mountport=2049&nfsport=2049&uid=UID-OF-/mnt/nfs-test&gid=GID-OF-/mnt/nfs-test' destination-file
;
client = yes
socket = l:SO_KEEPALIVE=1
socket = r:SO_KEEPALIVE=1
socket = a:TCP_KEEPINTVL=10
socket = a:TCP_KEEPIDLE=15
TIMEOUTclose = 0
accept = 127.0.0.1:2049
connect = 192.168.70.200:20000
PSKsecrets = /data/data/com.termux/files/home/client3.psk
sslVersionMin = TLSv1.3
- Always assign a non-zero number to "fsid" in "/etc/exports".
$ ls -l /etc/fedora lrwxrwxrwx 1 root root 25 Apr 5 2026 /etc/fedora-release -> ../usr/lib/fedora-release
$ stat --printf='uid = %u : gid = %g\n' /mnt/nfs-test
uid = 1000 : gid = 1000
$ nfsdctl version
+3.0 +4.0 +4.1 +4.2
$ stunnel -version 2>&1 | head -3
Initializing inetd mode configuration
stunnel 5.80 on x86_64-redhat-linux-gnu platform
Compiled/running with OpenSSL 3.5.7 9 Jun 2026
"/etc/exports"
-
/mnt/nfs-test 127.0.0.1(fsid=1234,insecure,rw)"
-
/mnt/nfs-test/shared-directory 127.0.0.1(fsid=70,insecure,rw)
date ; exportfs -ra ; exportfs -vs ; systemctl -l --no-pager status nfs-server ; tail /var/log/messages
;;;;;;
; Configuration file for Fedora Linux Server-1: stunnel-psk-fedora-linux-1-conf.txt
; On Fedora Linux as non-root: stunnel stunnel-psk-fedora-linux-1-conf.txt
; Check /var/log/secure
;foreground = yes
;debug = debug
;log = append
pid = /mnt/nfs-test/pid-fedora-linux-1
output = /mnt/nfs-test/log-fedora-linux-1
[Fedora-Linux-NFS-Server-1-stunnel-C]
client = no
socket = l:SO_KEEPALIVE=1
socket = r:SO_KEEPALIVE=1
socket = a:TCP_KEEPINTVL=10
socket = a:TCP_KEEPIDLE=15
TIMEOUTclose = 0
accept = 0.0.0.0:20000
connect = 127.0.0.1:2049
PSKsecrets = /mnt/nfs-test/stunnel-C-server.psk
sslVersionMin = TLSv1.3
[Fedora-Linux-NFS-Client-2-stunnel-B-connects-to-the-unfs3-NFS-server-on-Android-Termux-Smartphone-A-Server-3-stunnel-B]
;
; Fedora-Linux-NFS-Client-2: mount -t nfs -o vers=3,proto=tcp,port=2048,mountport=2048 127.0.0.1:/storage/emulated/0/test /mnt/nfs-test/phone1
;
client = yes
socket = l:SO_KEEPALIVE=1
socket = r:SO_KEEPALIVE=1
socket = a:TCP_KEEPINTVL=10
socket = a:TCP_KEEPIDLE=15
TIMEOUTclose = 0
accept = 127.0.0.1:2048
connect = 192.168.70.80:20020
PSKsecrets = /mnt/nfs-test/client2.psk
sslVersionMin = TLSv1.3
[Fedora-Linux-NFS-Client-1-stunnel-A-connects-to-Fedora-Linux-NFS-Server-2-stunnel-A]
;
; Fedora-Linux-NFS-Client-1: mount -t nfs -o port=20040 127.0.0.1:/mnt/test /mnt/nfs-test/server2
client = yes
socket = l:SO_KEEPALIVE=1
socket = r:SO_KEEPALIVE=1
socket = a:TCP_KEEPINTVL=10
socket = a:TCP_KEEPIDLE=15
TIMEOUTclose = 0
accept = 127.0.0.1:20040
connect = 192.168.1.100:20010
PSKsecrets = /mnt/nfs-test/client1.psk
sslVersionMin = TLSv1.3
;;;;;;
; Configuration file for Fedora Linux Server-2: stunnel-psk-fedora-linux-2-conf.txt
; On Fedora Linux as non-root: stunnel stunnel-psk-fedora-linux-2-conf.txt
; Check /var/log/secure
;
;foreground = yes
;debug = debug
;log = append
pid = /mnt/nfs-test/pid-fedora-linux-2
output = /mnt/nfs-test/log-fedora-linux-2
[Fedora-Linux-NFS-Server-2-stunnel-A]
;
; Fedora-Linux-NFS-Client-1: mount -t nfs -o port=20040 127.0.0.1:/mnt/test /mnt/nfs-test/server2
client = no
socket = l:SO_KEEPALIVE=1
socket = r:SO_KEEPALIVE=1
socket = a:TCP_KEEPINTVL=10
socket = a:TCP_KEEPIDLE=15
TIMEOUTclose = 0
accept = 0.0.0.0:20010
connect = 127.0.0.1:2049
PSKsecrets = /mnt/nfs-test/stunnel-A-server.psk
sslVersionMin = TLSv1.3
- mount -t nfs -o vers=3,proto=tcp,port=2048,mountport=2048 127.0.0.1:/storage/emulated/0/test /mnt/nfs-test/phone1
- mount -t nfs -o port=20040 127.0.0.1:/mnt/nfs-test /mnt/nfs-test/server2
-
nfs-cp 'nfs://127.0.0.1/mnt/nfs-test/source-file?mountport=2049&nfsport=2049&uid=UID-OF-/mnt/nfs-test&gid=GID-OF-/mnt/nfs-test' destination-file
-
destination-file should not exist
User ID (UID) for "/mnt/nfs-test" is 1000, Group ID (UID) for "/mnt/nfs-test" is 1000
- nfs-cp source-file 'nfs://127.0.0.1/storage/emulated/0/test/destination-file?mountport=2048&nfsport=2048'
$ stunnel -version 2>&1 | head -3
Initializing inetd mode configuration
stunnel 5.82 on aarch64-unknown-linux-android platform
Compiled with OpenSSL 3.6.3 9 Jun 2026
$ neofetch --stdout | grep OS
OS: Android 14 aarch64
;;;;;;
; Configuration file for Smartphone-B: stunnel-psk-termux-Smartphone-B-conf.txt
; On Android Smartphone-B: stunnel stunnel-psk-termux-Smartphone-B-conf.txt
;foreground = yes
;debug = debug
;log = append
pid = /data/data/com.termux/files/home/pid-stunnel-Smartphone-B.txt
output = /data/data/com.termux/files/home/log-stunnel-Smartphone-B.txt
[Android-Termux-Smartphone-Smartphone-B-Client-4-stunnel-B-connects-to-the-unfs3-NFS-server-on-Android-Termux-Smartphone-A-Server-3-stunnel-B]
;
; nfs-cp source-file 'nfs://127.0.0.1/storage/emulated/0/test/destination-file?mountport=2048&nfsport=2048'
;
; nfs-cp 'nfs://127.0.0.1/storage/emulated/0/test/source-file?mountport=2048&nfsport=2048' destination-file
;
; If port 2048 is taken try 2040: change nfsport, mountport, and "accept = "
client = yes
socket = l:SO_KEEPALIVE=1
socket = r:SO_KEEPALIVE=1
socket = a:TCP_KEEPINTVL=10
socket = a:TCP_KEEPIDLE=15
accept = 127.0.0.1:2048
TIMEOUTclose = 0
connect = 192.168.70.80:20020
PSKsecrets = /data/data/com.termux/files/home/client4.psk
sslVersionMin = TLSv1.3
--------------------------------
| Fedora Linux: Server-1 |
| IP Address 1: 192.168.70.200 |
| IP Address 2: 192.168.1.115 |
| IP Address 3: 127.0.0.1 |
| NFS Default Port: 2049 |
| |
| /mnt/test = 127.0.0.1:2049 |
| |
| |
--------------------------------
|
---------------------------
( stunnel-C )
( stunnel client: no )
( Listen: 0.0.0.0 )
( Listen Port: 20000 )
( Listen PSK: client3.psk )
( Send To: 127.0.0.1 )
( Send To Port: 2049 )
( )
( )
( )
---------------------------
|
@-@-@-@-@-@-@-@-
@
|
@
-------------------------------- | -------------------------------
| Fedora Linux: Server-2 | @ | Smartphone-A: Server-3 |
| IP Address 1: 192.168.1.100 | | | IP Address: 192.168.70.80 |
| IP Address 2: 127.0.0.1 | @ | NFS Default Port: 2049 |
| NFS Default Port: 2049 | | | |
| | @ | /storage/emulated/0/test |
| | | | = 127.0.0.1:2049 |
| /mnt/test = 127.0.0.1:2049 | @ -------------------------------
| | | |
| | @ ---------------------------
-------------------------------- | ( stunnel-B )
| @ ( stunnel Client: No )
--------------------------- | ( Listen: 0.0.0.0 )
( stunnel-A ) @ ( Listen Port: 20020 )
( stunnel Client: No ) | ( Listen PSK: client2.psk )
( Listen: 0.0.0.0 ) @ ( Listen PSK: client4.psk )
( Listen Port: 20010 ) | ( )
( Listen PSK: client1.psk ) @ (
( Send To: 127.0.0.1 ) | ( Send To: 127.0.0.1 )
( Send To Port: 2049 ) @ ( Send To Port: 2049 )
( ) | -----@---------------------
( ) @ @
( ) | |
------------------------- @ @
| | |
@ @ @
| | |
@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ @ @ @
@ Network: 192.168.1.0/24 @ @ Network: 192.168.70.0/24 @
@ @ @ Access to Internet: No @
@ @ @ Access to 192.168.1.0/24: No @
@ @ @ @
@@@@@@@@@@@@@@@@@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
| | | |
@ @ @ @
| | | |
-------@------------------ @ @ ----@----------------------
( Use stunnel-A ) | | ( Use stunnel-B )
( stunnel Client: Yes ) @ @ ( stunnel Client: Yes )
( Listen: 127.0.0.1 ) | | ( Listen: 127.0.0.1 )
( Listen Port: 20040 ) @ @ ( Listen Port: 2048 )
( Send PSK: client1.psk ) | | ( Send PSK: client4.psk )
( Send To: 192.168.1.100 ) @ @ ( Send To: 192.168.70.80 )
( Send To Port: 20010 ) | | ( Send To Port: 20020 )
( ) @ @ ---------------------------
( ) | | |
( ) @ @ ----------------------------------
-------------------------- | | | Smartphone-B: Client-4 |
| @ @ | IP Address: 192.168.70.40 |
-------------------------------- | | | nfs-cp source-file 'nfs:// |
| Fedora Linux: Client-1 | @ @ | 127.0.0.1/storage/emulated/0/ |
| IP Address 1: 192.168.70.200 | | | | test/destination-file? |
| IP Address 2: 192.168.1.115 | @ @ | mountport=2048&nfsport=2048' |
| | | | | |
| NFS Default Port: 2049 | @ @ ----------------------------------
| mount 127.0.0.1,port=20040 | | |
| | @ @
| | | |
| | @ @
-------------------------------- | |
@ ----@----------------------
@-@-@-@-@-@-@-@-| ( Use stunnel-B )
| ( stunnel Client: Yes )
-----------------------@--- ( Listen: 127.0.0.1 )
( Use stunnel-C ) ( Listen-Port: 22070 )
( stunnel Client: Yes ) ( Send-PSK: client2.psk )
( Listen: 127.0.0.1 ) ( Send To: 192.168.70.80 )
( Listen-Port: 2049 ) ( Send To Port: 20020 )
( Send-PSK: client3.psk ) ---------------------------
( Send To: 192.168.70.200 ) |
( Send To Port: 20000 ) --------------------------------
--------------------------- | Fedora Linux: Client-2 |
| | IP Address 1: 192.168.70.200 |
-------------------------------------- | IP Address 2: 192.168.1.115 |
| Smartphone-A: Client-3 | | mount -t nfs -o vers=3, |
| IP Address: 192.168.70.80 | | proto=tcp,port=22070, |
| nfs-cp 'nfs://127.0.0.1/mnt/ | | mountport=22070 127.0.0.1: |
| 127.0.0.1/nfs-test/source-file | | /storage/emulated/0/test |
| ?mountport=2049&nfsport=2049&uid= | | /mnt/nfs-test/phone1 |
| UID-OF-/mnt/nfs-test&gid= | | |
| GID-OF-/mnt/nfs-test' | --------------------------------
| destination-file |
--------------------------------------
-
kill -SIGHUP "$(cat PID-FILE)"
-
kill -SIGHUP
cat PID-FILE -
cat /tmp/pid ; kill -SIGHUP PID
-
-
How Figure-1 and Figure-2 were created: Kate editor (version 26.04.3) on a Fedora Linux server using copy, cut, paste, and "Block Selection Mode" operations with an external keyboard, the Onboard on-screen keyboard (https://github.com/onboard-osk/onboard), and a mouse.
-
RFC 9257, "Guidance for External Pre-Shared Key (PSK) Usage in TLS": https://www.rfc-editor.org/rfc/rfc9257.html , https://www.rfc-editor.org/rfc/rfc9257.txt , https://datatracker.ietf.org/doc/rfc9257/
- RFC 9846, "The Transport Layer Security (TLS) Protocol Version 1.3": https://www.rfc-editor.org/rfc/rfc9846.html , https://www.rfc-editor.org/rfc/rfc9846.txt , https://datatracker.ietf.org/doc/rfc9846/
-
"exportfs Command: Tutorial & Examples" "Manage and display NFS exported file systems on a Linux server": https://cleveruptime.com/docs/commands/exportfs , https://web.archive.org/web/20240910094543/cleveruptime.com/docs/commands/exportfs , https://archive.ph/gdF4E
-
"INI file": https://en.wikipedia.org/wiki/INI_file
-
The following article links are from "Motorola moto g play 2024 Smartphone, Android 14 Operating System, Termux, And cryptsetup: Linux Unified Key Setup (LUKS) Encryption/Decryption And The ext4 Filesystem Without Using root Access, Without Using proot-distro, And Without Using QEMU": https://www.reddit.com/r/MotoG/comments/1jkl0f8/motorola_moto_g_play_2024_smartphone_android_14/ , https://old.reddit.com/r/MotoG/comments/1jkl0f8/motorola_moto_g_play_2024_smartphone_android_14/
-
"What Is 127.0.0.1 Localhost?": https://phoenixnap.com/kb/127-0-0-1-localhost , https://archive.ph/lHmc6n
-
"Localhost vs. 127.0.0.1": https://phoenixnap.com/kb/localhost-vs-127-0-0-1 , https://archive.ph/7YeAv
-
"The Difference Between 127.0.0.1 and Localhost": https://www.baeldung.com/cs/127-0-0-1-vs-localhost , https://archive.ph/S7qKM
-
-
"How to Understand the 0.0.0.0 Address in IPv4" "The address 0.0.0.0 has multiple context-dependent meanings in IPv4, including the unspecified source address during DHCP, a wildcard binding address for servers, and the default route destination...":
https://oneuptime.com/blog/post/2026-03-20-understand-0-0-0-0-address-ipv4/view -
"Understanding 127.0.0.1 vs 0.0.0.0": https://stenzr.medium.com/understanding-0-0-0-0-vs-127-0-0-1-c6257ae35c62 , https://archive.ph/abPLg
-
"Is 0.0.0.0 a Valid IP Address?": https://www.baeldung.com/cs/ip-all-zeroes , https://archive.ph/NlZQx
-
"Public Key Infrastructure (PKI)": https://gist.github.com/NoteAfterNote/0892db84c82e4f5107bc35a6931fa5de
-
"Testing: Termux, proot-distro, Network File System (NFS)": https://gist.github.com/NoteAfterNote/e1719f4029b91918d996216939d5bff2