Network tools and utilities

tftp on MacOS v26 (Tahoe) [CANCELLED]
preface 
 tftp was depreciated from macOS. 
 lesson (might be useful) 
 Check is it available 
 ls /usr/libexec/tftpd
 
 
 Create local tftp directory AS NORMAL user 
 export u="anton-w"
export dir="/Users/${u}/delme/tftp"
mkdir -p ${dir}
cd ${dir}
pwd
 
 current status 
 netstat -f inet | grep tftp
lsof -iUDP:69
lsof -nPi | grep ":69"
 
 stop service and verify 
 export s="system/com.apple.tftpd"
launchctl stop ${s}
launchctl bootout ${s}
launchctl disable ${s}
launchctl remove ${s}
launchctl list | grep ${s}

netstat -f inet | grep tftp
lsof -iUDP:69
lsof -nPi | grep ":69"
 
 default config has disabled option, override is needed 
 export f="/System/Library/LaunchDaemons/tftp.plist"
cat ${f} | grep com.apple.tftpd
cat ${f} | grep -i -A1 disabled
 
 Create override 
 export f="/System/Library/LaunchDaemons/tftp.plist"
export fov="/Library/LaunchDaemons/local.tftp.plist"
cp ${f} ${fov}
ls -la ${fov}
vi ${fov}
 
 Content 
 <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
 <key>Disabled</key>
 <false/>
 <key>Label</key>
 <string>local.tftp</string>
 <key>ProgramArguments</key>
 <array>
 <string>/usr/libexec/tftpd</string>
 <string>-d</string>
 <string>-l</string>
 <string>-s</string>
 <string>/Users/anton-w/delme/tftp</string>
 <string>-u</string>
 <string>anton-w</string>
 </array>
 <key>inetdCompatibility</key>
 <dict>
 <key>Wait</key>
 <true/>
 </dict>
 <key>InitGroups</key>
 <true/>
 <key>Sockets</key>
 <dict>
 <key>Listeners</key>
 <dict>
 <key>SockServiceName</key>
 <string>tftp</string>
 <key>SockType</key>
 <string>dgram</string>
 </dict>
 </dict>
</dict>
</plist>
 
 Verify plist file 
 cat ${fov} | grep -i -A1 disabled
plutil -lint ${fov}
 
 Set ownership and permissions 
 ls -la ${fov}
chown root:wheel ${fov}
chmod 644 ${fov}
ls -la ${fov}
 
 Enable service 
 export s="system/local.tftp"

launchctl stop ${s}
launchctl bootout ${s}
launchctl disable ${s}
launchctl remove ${s}
launchctl list | grep ${s}

launchctl enable ${s}
export f="/Library/LaunchDaemons/local.tftp.plist"
launchctl load -wF ${f}
# launchctl bootstrap system ${s}

launchctl start ${s}
launchctl list ${s}
launchctl print ${s} | grep state

 
 New file should be in the dump 
 launchctl dumpstate | grep ".plist" | grep ftp
 
 
 Verify that default TFTP root exists 
 ls -la /private/tftpboot
 
 Create if missing 
 sudo mkdir -p /private/tftpboot
sudo chmod 777 /private/tftpboot
 
 Verify tftp is listening on 
 netstat -f inet | grep tftp
netstat -an | grep "*.69"
netstat -atp UDP | grep tftp
lsof -iUDP:69
lsof -nPi | grep ":69"
 
 Check state firewall 
 sudo /usr/libexec/ApplicationFirewall/socketfilterfw --getglobalstate
 
 if needed, create a rule to allow 
 sudo /usr/libexec/ApplicationFirewall/socketfilterfw --add /usr/libexec/tftpd
sudo /usr/libexec/ApplicationFirewall/socketfilterfw --unblockapp /usr/libexec/tftpd
 
 I am using Little Snitch, thus my native firewall is disabled. 
 TFTP daemon is set up and ready to receive/transmit files. 
 troubleshooting 
 launchctl dumpstate | grep ".plist" | grep ftp
 
 log stream --style syslog --predicate 'process == "launchctl"'
log stream --style syslog --predicate 'subsystem == "com.apple.xpc.launchctl"'
log show --last 5m --style syslog --predicate 'subsystem == "com.apple.xpc.launchctl"'
 
 Start daemon manually 
 	/usr/libexec/tftpd \
		-d \
		-l \
		-s \
		/Users/anton-w/delme/tftp \
		-u \
		anton-w
 
 FIle exist, is executable , but does not do anything. 
 pkgutil --file-info /usr/libexec/tftpd
# no package provides
codesign -dv /usr/libexec/tftpd
# has not authority
csrutil authenticated-root status
file /usr/libexec/tftpd
mount | grep "sealed"

 
 Go home.

Terminal via serial port on MacOS Sonoma
Connect 
 Verify connectivity 
 system_profiler SPUSBDataType | grep -i -A5 serial
 
 
 ioreg -p IOUSB
 
 
 Identify device 
 ls -ltr /dev/tty*
 
 
 Disconnect, connect back, repeat command to identify it is exactly the same device (it will be usually owned by the root, but by user) 
 ls -ltr /dev/
 
 
 Attach screen to the serial port 
 screen /dev/ttys003 115200
 
 Exit nicely, press 
 CTRL+A
K
Y

Speed tests

Global speed tests providers
Remember to open a new test in the new private session window (to ensure new TCP connection will be established) 
 CloudFlare 
 https://speed.cloudflare.com
 
 Does measure download for different sizes.
Presents jitter in graphical way.
Very good