在 macOS 上编译 stun 服务器和客户端
Dec 26, 2024
把源码 clone 下来: $ git clone https://github.com/jselbie/stunserver.git 进入源码目录,在这之前确保 boost 库已经编译好了(我的 boost 安装在 /opt/local): CXX=$(xcrun --find clang++) \ CXXFLAGS="-std=gnu++17 -isysroot $(xcrun --show-sdk-path) -I/opt/local/include" \ make 然后把编译出来的三个程序放到 bin 目录下就可以使用了,我自己使用的目录是(/opt/local/bin): …
在 macOS 上编译 C++ boost 库
Dec 26, 2024
在官网下载源码包: https://www.boost.org/users/download/ ,目前的版本是 1.87.0 解压后进入源码目录,先编译工具 b2: $ ./bootstrap.sh 然后使用 b2 编译 boost 的源码: $ sudo ./b2 install --prefix=/opt/local variant=release link=static threading=multi install 表示编译后直接安装到 --prefix 指定的目录下,手动安装可以不需要这个参数。 …
检测当前网络的 NAT 类型
Dec 25, 2024
NAT 类型分为锥型 NAT 和对称型 NAT,下面介绍在 macOS 和 Linux 系统下检测 NAT 类型的方法。 Tips:锥型 NAT 只对 UDP 类型的协议(比如 STUN)有优化效果,对 TCP 协议有反作用(因为 TCP 是有状态的)。 …
禁止 ping 回应
Dec 21, 2024
Linux 编辑 /etc/sysctl.conf: net.ipv4.icmp_echo_ignore_all = 1 net.ipv6.icmp.echo_ignore_all = 1 需要注意的是 IPv4 和 IPv6 的路径稍有不同,并不是写错了。
把 /tmp 移到内存中
Dec 21, 2024
我的树莓派 4B 是 8G 内存版本的,平常内存占用很低,把 /tmp 目录移到内存里能减少一点 SD 卡的读写。 $ sudo ln -s /usr/share/systemd/tmp.mount /etc/systemd/system/ $ sudo systemctl enable tmp.mount $ sudo systemctl start tmp.mount 现在看一下分区情况: $ sudo df -h 可以看到 /tmp 分区已经加载到内存中了: …
nmcli 扫描和连接 Wi-Fi
Dec 20, 2024
列出所有 Wi-Fi 名称: $ sudo nmcli dev wifi list 连接指定名称的 Wi-Fi: $ sudo nmcli dev wifi connect 'KFC Free WiFi' password 'WiFi passwd'
dd 重装阿里云轻量服务器
Dec 09, 2024
首先登录阿里云轻量服务器,系统需要重装为 Debian。 在 mfsBSD 的官网上 https://mfsbsd.vx.sk/ 下载 mfslinux-0.1.11-94b1466.iso 到 Debian 上: $ wget https://mfsbsd.vx.sk/files/iso/mfslinux/mfslinux-0.1.11-94b1466.iso 然后下载 Debian 的 mini 镜像,我实测只有这个镜像可以安装成功,而且体积超小。 $ wget https://deb.debian.org/debian/dists/bookworm/main/installer-amd64/current/images/netboot/mini.iso 把 mfslinux 的放到 /boot 目录中,等一下需要启动到 mfslinux 中进行操作: …
OpenSSH 服务器禁止密码登录方式
Dec 09, 2024
编辑 /etc/ssh/sshd_config,关闭以下和密码认证相关的选项: PasswordAuthentication no PermitEmptyPasswords no KbdInteractiveAuthentication no UsePAM no
两种方式在树莓派上设置接入 WiFi 的静态 IP
Dec 04, 2024
在树莓派上有两种网络管理方式:dhcpcd 和 NetworkManager。 dhcpcd 编辑配置文件 /etc/dhcpcd.conf,里面可以对网络接口配置: SSID Your-WiFi-Name static ip_address=192.168.0.100/24 static routers=192.168.0.1 static domain_name_servers=192.168.0.1 NetworkManager 需要使用命令 nmcli 进行配置。 …
设置 FIN_WAIT_2 超时值
Nov 28, 2024
Debian 编辑 sysctl.conf,单位是秒(s): net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_fin_timeout = 60 net.ipv4.tcp_keepalive_time = 600 FreeBSD 编辑 sysctl.conf,单位是毫秒(ms): net.inet.tcp.fast_finwait2_recycle = 1 net.inet.tcp.finwait2_timeout = 60000 查看当前活跃的 TCP 连接数 $ netstat -an | grep ESTABLISHED | wc -l 使用 wrk 工具测试并发连接 $ wrk -t16 -c1000 -d60s --latency https://apple.com