我有一台运行 OS X 10.8.2 的 Mac mini,其中装有应用商店中的 OS X Server 2.2.1,并且已在 Server.app 界面中使用 L2TP 设置 VPN。我已使用 Macbook 测试了此 VPN 连接,可以正常工作,但我不知道如何让 Android 的内置 VPN 正常工作。
当前设置:
- 我已经在路由器上打开了端口 500、1701、1723 和 4500。
- 我正在使用来自 no-ip.com 的动态 DNS,我们将其称为 hostname.no-ip.org
- 我已经设置了一个“共享秘密”,我们会说 1234567890
- 我在服务器上为我的 Android 手机建立了一个账户,假设用户名是“nexus”,密码是“google”
在 Macbook 上,我只需使用我在服务器上设置的 DNS、密钥和凭据,即可连接。
在我的 Android 设备(Galaxy Nexus 4.2.2)上,我使用以下设置:
- 名称:Mac Server
- 类型:L2TP/IPSec PSK
- 服务器地址:hostname.no-ip.org
- LT2TP 秘密:(未使用)
- IPSec 标识符:(未使用)
- IPSec 预共享密钥:1234567890
当我尝试使用这些设置进行连接时,它会提示输入用户名和密码,因此我输入了“nexus”和“google”。它停留在那里显示“正在连接...”大约 30 秒,然后它又回到“断开连接”,没有任何错误或其他消息。我也尝试将“共享密钥”放入 L2TP 密钥字段,但结果相同。
内置的 Android VPN 是否与 OS X Server 的 VPN 不兼容?还是我配置有误?
注意:我强烈希望继续使用 L2TP,而不是安全性较低的 PPTP VPN
答案1
我在 Mac OSX Leopard 10.5.8 上取得了一些成功。对于我的设置,我在 Verizon FiOS Actiontec 路由器后面有一台 Mac Mini。我使用 Android 手机进行连接。
一开始,它在内部运行良好(手机使用同一个 Wifi),但在外部连接时会失败(手机使用数据连接)。最后,它的工作方式恰恰相反。
我没有“VPN 用户”的用户帐户,因为此方法仅为连接创建了一个用户/密码。我没有“登录”到 Mac,但连接后可以与“真实用户”进行远程桌面连接。
我使用的是 2.4b 版互联网VPN配置设置,以下是一些最终结果:
转发端口 UDP 任意->1701,UDP 任意->500
Android 设置
名称:YourConnectionName(例如 Mac 服务器) 类型:L2TP/IPSec PSK 服务器地址:hostname.no-ip.org L2TP 密钥:(未使用) IPSec 标识符:(未使用) IPSec 预共享密钥:**YourSharedSecret**
连接时 用户名:auser 密码:challenge
/etc/ppp/用户.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Password</key>
<string>challenge</string>
<key>User</key>
<string>auser</string>
</dict>
</plist>
/etc/ppp/chap-秘密
auser * challenge *
/资源库/首选项/系统配置/com.apple.RemoteAccessServers.plist
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>ActiveServers</key>
<array>
<string>com.apple.ppp.l2tp</string>
</array>
<key>Servers</key>
<dict>
<key>com.apple.ppp.l2tp</key>
<dict>
<key>DNS</key>
<dict>
<key>OfferedSearchDomains</key>
<array/>
<key>OfferedServerAddresses</key>
<array>
<string>208.67.222.222</string>
<string>208.67.220.220</string>
</array>
</dict>
<key>IPv4</key>
<dict>
<key>ConfigMethod</key>
<string>Manual</string>
<key>DestAddressRanges</key>
<array>
<string>192.168.10.101</string>
<string>192.168.10.200</string>
</array>
<key>OfferedRouteAddresses</key>
<array>
<string>192.168.10.100</string>
</array>
<key>OfferedRouteMasks</key>
<array>
<string>255.255.255.0</string>
</array>
<key>OfferedRouteTypes</key>
<array>
<string>Private</string>
</array>
</dict>
<key>Interface</key>
<dict>
<key>SubType</key>
<string>L2TP</string>
<key>Type</key>
<string>PPP</string>
</dict>
<key>L2TP</key>
<dict>
<key>IPSecSharedSecret</key>
<string>**YourSharedSecret**</string>
<key>Transport</key>
<string>IPSec</string>
</dict>
<key>PPP</key>
<dict>
<key>AuthenticatorProtocol</key>
<array>
<string>MSCHAP2</string>
</array>
<key>LCPEchoEnabled</key>
<integer>1</integer>
<key>LCPEchoFailure</key>
<integer>5</integer>
<key>LCPEchoInterval</key>
<integer>60</integer>
<key>Logfile</key>
<string>/var/log/ppp/vpnd.log</string>
<key>VerboseLogging</key>
<integer>1</integer>
</dict>
<key>Server</key>
<dict>
<key>Logfile</key>
<string>/var/log/ppp/vpnd.log</string>
<key>MaximumSessions</key>
<integer>128</integer>
<key>VerboseLogging</key>
<integer>1</integer>
</dict>
</dict>
</dict>
</dict>
</plist>
/etc/racoon/remote/anonymous.conf
remote anonymous {
doi ipsec_doi;
situation identity_only;
exchange_mode main;
verify_identifier off;
shared_secret use "**YourSharedSecret**";
nonce_size 16;
nat_traversal_multi_user on;
initial_contact on;
support_mip6 on;
proposal_check claim;
proposal {
authentication_method pre_shared_key;
hash_algorithm sha1;
encryption_algorithm 3des;
lifetime time 3600 sec;
dh_group 2;
}
}
sainfo anonymous {
encryption_algorithm aes, 3des;
authentication_algorithm hmac_sha1, hmac_md5;
compression_algorithm deflate;
lifetime time 3600 sec;
}
您可能必须touch /var/log/ppp/vpnd.log
这样做,如果您没有使用 iVPN,则看起来(从ps -ax
)服务器是用 启动的vpnd -i com.apple.ppp.l2tp
。更改设置和 PSK 后,我还racoonctl flush-sa ipsec
。