命令行方式开启远程桌面功能时,如何设置允许连接的IP地址?
美国、香港服务器
命令行方式开启远程桌面功能时,如何设置允许连接的IP地址?
07-30 来源:
在 macOS 中通过命令行开启远程桌面功能时,可通过以下方法设置仅允许特定 IP 地址连接,具体分为 ** 屏幕共享(VNC)和远程管理(ARD)** 两种场景:
一、屏幕共享(VNC)的 IP 限制方法
屏幕共享基于 VNC 协议,默认监听端口 5900。可通过防火墙规则或系统配置文件限制 IP 访问。
方法 1:使用防火墙(pfctl)限制 IP
编辑防火墙规则文件:
bash
sudo nano /etc/pf.conf
在文件末尾添加允许特定 IP 访问 5900 端口的规则(例如允许192.168.1.100连接):
bash
# 允许特定IP访问屏幕共享端口
pass in on en0 proto tcp from 192.168.1.100 to any port 5900
en0:替换为实际网络接口(可通过 ifconfig 查看)。
若需允许多个 IP,可用 {IP1, IP2} 格式,例如:
bash
pass in on en0 proto tcp from {192.168.1.100, 192.168.1.200} to any port 5900
加载并启用防火墙:
bash
sudo pfctl -f /etc/pf.conf
sudo pfctl -e
验证规则生效:
bash
sudo pfctl -s rules | grep 5900
方法 2:修改系统配置文件(需关闭 SIP)
若需更精细的控制(如同时限制端口和协议),可修改屏幕共享服务的配置文件 com.apple.screensharing.plist,但需临时关闭系统完整性保护(SIP):
关闭 SIP:
重启 Mac,按住 Command + R 进入恢复模式。
打开终端,执行:
bash
csrutil disable
重启 Mac。
编辑配置文件:
bash
sudo nano /System/Library/LaunchDaemons/com.apple.screensharing.plist
在 标签内添加以下内容(限制 IP 为192.168.1.100):
xml
ProgramArguments
/usr/sbin/screensharingd
--allow-ip
192.168.1.100
重新加载服务并开启 SIP:
bash
sudo launchctl bootout system/com.apple.screensharing
sudo launchctl bootstrap system /System/Library/LaunchDaemons/com.apple.screensharing.plist
再次进入恢复模式,执行 csrutil enable 重启 SIP。
二、远程管理(ARD)的 IP 限制方法
远程管理基于 Apple Remote Desktop 协议,默认监听端口 3283。可通过配置文件或专用工具限制 IP。
方法 1:使用 defaults 命令设置白名单
添加允许的 IP 地址:
bash
sudo defaults write /Library/Preferences/com.apple.ARDAgent ServerWhiteList -array-add "192.168.1.100"
若需允许多个 IP,可多次执行 -array-add,或直接写入数组:
bash
sudo defaults write /Library/Preferences/com.apple.ARDAgent ServerWhiteList -array "192.168.1.100" "192.168.1.200"
验证配置生效:
bash
defaults read /Library/Preferences/com.apple.ARDAgent ServerWhiteList
重启 ARD 服务:
bash
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -restart -agent
方法 2:通过 kickstart 工具配置
若需在开启 ARD 时同步设置 IP 限制,可在执行 kickstart 命令时添加参数:
bash
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart \
-activate \
-configure -access -on \
-configure -allowedipaddresses -ipaddresses "192.168.1.100"
-allowedipaddresses:指定允许的 IP 地址(可多次使用以添加多个 IP)。
需配合 -access -on 启用访问权限。
三、通用注意事项
防火墙规则冲突:
若已通过系统偏好设置的 “防火墙” 开启远程桌面,需确保命令行添加的规则未被覆盖。
可通过 sudo /usr/libexec/ApplicationFirewall/socketfilterfw --listapps 查看已放行的应用。
SIP 限制:
修改系统文件(如 com.apple.screensharing.plist)需关闭 SIP,操作后务必重新启用。
关闭 SIP 后,系统安全性降低,建议仅在必要时使用。
端口号确认:
屏幕共享:默认端口 5900(VNC)。
远程管理:默认端口 3283(ARD)。
可通过 lsof -i :端口号 检查端口占用情况。
重启生效:
部分配置(如防火墙规则)需重启服务或系统才能生效。
四、验证连接权限
测试 IP 是否被允许:
在另一台设备上执行:
bash
vncviewer 目标Mac的IP:5900 # 屏幕共享测试
ar -t 目标Mac的IP # 远程管理测试(需安装Apple Remote Desktop)
若提示连接失败,检查防火墙规则或白名单配置。
查看日志:
屏幕共享日志:
bash
tail -f /private/var/log/system.log | grep screensharingd
远程管理日志:
bash
tail -f /private/var/log/ARDAgent.log
通过以上方法,可精准控制远程桌面的访问权限,确保仅授权 IP 地址能连接。命令行方式尤其适合批量部署或远程管理场景,结合防火墙和服务配置,可实现高效且安全的远程访问控制。
三二互联专业提供香港VPS,美国VPS主机,香港云服务器租用等业务香港美国到大陆CN2 GIA速度最快