Mac OS X Server Mountain Lion 10.8下配置VPN并开启数据转发

好吧,其实这个早就应该解决了的才对,不过直到最近重新尝试才发现之前没做成功是因为完全没按照文档操作,所以当然会失败!
现在根据我的经验重新写一下做法,比原文好的是关于私有IP部分。至于图的话直接看原文就好了,不再进行转贴。
原文地址:http://www.macminicolo.net/mountainlionvpn

OS X Server自带的VPN原本是提供外网接入内网访问的,并不提供数据转发。如果不需要走数据的直接设置就行了,不需要看本教程。而如果想要拿来挂代理要走数据的话怎么办呢?
继续看下去吧~

首先先确认iCloud的Back to my Mac已关闭,根据官方说明:“在 NAT 模式下配置 AirPort 基站或 Time Capsule 上的“回到我的 Mac”会妨碍与 NAT 模式下的 OS X Server VPN 服务的连接“。所以必须关掉Back to my Mac以防止对VPN进行干扰。

然后建立一个VLAN,设置其为手动设置IPv4。
IP地址和路由为你的本机IP,子网掩码255.255.255.0。比如咱的服务器被路由器分配的IP是192.168.0.100的话,那么VLAN里填写的IP和路由都应该为192.168.0.100。
原文中博主是使用10.0.0.1是因为他本机的IP就为这个。而至于10.0.0.0/24则是CIDR,具体可以查看wiki关于CIDR。如果子网掩码不是255.255.255.0的话需要自己去重新计算喔。

设置好VLAN之后就去设置Server.app里的DNS,添加几个常用的就好,比如8.8.8.8之类的,然后开启DNS服务(默认都应该开启的)。

然后是开启NAT就是转发功能,需要修改到系统文件。先说明咱使用的都是vim,如果连最简单的操作都不熟悉的话自己去学,连这个都不会别想去管服务器了。

开终端,然后按照咱说的做:
输入sudo vim /etc/pf.anchors/com.apple
在文件里找到:scrub-anchor "100.InternetSharing/*"
然后在它的前面加上个#号,也就是注释掉。
接着找到文件最末尾。将最后一行改成:(倒数第二行不要动)
load anchor "400.AdaptiveFirewall" from "/Applications/Server.app/Contents/ServerRoot/private/etc/pf.anchors/400.AdaptiveFirewall"
其实也就是开头的load anchor “400.AdaptiveFirewall/”多了个”/”,是10.8.2的bug。需要手动清除。
最后在文件里添加三行东西:

nat-anchor "100.customNATRules/*"
rdr-anchor "100.customNATRules/*"
load anchor "100.customNATRules" from "/etc/pf.anchors/customNATRules"

保存退出。
接着运行:sudo touch /etc/pf.anchors/customNATRules
然后运行:sudo vim /etc/pf.anchors/customNATRules
接着添加以下两行:

nat on en0 from 192.168.0.0/24 to any -> (en0)
pass from {lo0, 192.168.0.0/24} to any keep state

注意和上面说的一样,原文10.0.0.0/24代表10.0.0.1~254,而我们的网络如果是192.168.0.1~254的话,则需要修改成192.168.0.0/24。
保存并退出,继续输入以下命令:(都是一行)
sudo /usr/libexec/PlistBuddy -c 'add :ProgramArguments:3 string -e' /System/Library/LaunchDaemons/com.apple.pfctl.plist

echo 'net.inet.ip.forwarding=1' | sudo tee -a /etc/sysctl.conf
当返回是:net.inet.ip.forwarding=1的时候说明配置成功了。这时候需要重启一下电脑让这些改动生效。

重启之后接着就是去设置VPN了,填写好域名和共享密匙之后在DNS设置里将原有的DNS全部清空,输入192.168.0.100也就是本机的IP地址。
然后到客户端地址,设置起始IP为192.168.0.150(只要是IP段内就好)。正确的话在点OK之后是不会弹出IP地址段错误的提示的。
最后开启VPN服务,理论上应该就能走数据了。

客户端的配置就不多说了。网上教程到处都是,而且这么简单的设置不用教程应该都能配置好的。
不过经过咱的测试,PPTP似乎是无法连接,L2TP倒是一切正常,所以目前全部切换到L2TP了。

Mac下讓XLD支持CUE+TAK

前一陣因為手動解密硬盤導致3個wine都失效了:CrossOver、MikuInstaller以及MacPorts的。
於是在沒有wine的情況下XLD是沒辦法讀取CUE+TAK文件的,會提示一個錯誤…(可惜忘記截圖下來了..

解決方法就是裝wine,但是MikuInstaller是最簡單的方法可惜並不被XLD所支持..而CrossOver是收費軟件。於是就用MacPorts最好了。
安裝wine前的準備,首先需要一個Xcode,Lion之後的系統應該都是去AppStore裡下載了。目前最新版本應該是4.4.1。如果不想裝大體積的Xcode也可以只裝命令行工具(Command Line Tools),LionML都有(地址是Aug,7,2012的,以後肯定會有新的,建議去開發者中心下載會比較好,網上也應該能搜索到下載地址)。
安裝好Xcode之後打開應用程序裡的實用工具裡的終端。接著修改Xcode的地址,因為Xcode3的時候都是默認的/Developer,而現在Xcode已經是單獨一個app文件了。於是終端裡輸入sudo /usr/bin/xcode-select -switch /Applications/Xcode.app/Contents/Developer
然後輸入sudo xcodebuild -license,會出現條款,按空格鍵到最後輸入agree即可..
接著去macports.org下載MacPorts,並且安裝,雖然安裝文件比較小但是耗時倒挺長…
安裝完MacPorts之後再回到終端,輸入sudo port -v selfupdate,進行一次更新檢測。完成之後輸入sudo port install wine即可。

而我在這之後就提示各種文件已存在的Error,之後XLD還是無法讀取CUE+TAK,而關閉掉XLD再重新打開則就能讀取了…
因為經過wine的緣故所以讀取的時候電腦會卡好一陣…不過也正說明正在運行著了..(解碼的時候速度倒是和別的文件一樣)。
話說貌似多少年前就說TAK支持要C了?至今還是在用坑爹的wine+exe真心不夠Mac化啊!!
而且也奇怪為啥那麼多人喜歡TAK而不用APE…

嘛…總的來說操作不算繁瑣,希望有所幫助~
如果上述操作之後還有問題可以留言提出….

后记:另外个更简单的方法就是使用homebrew。安装只需要一条命令行(不过同样需要先安装Command Line Tools)ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
安装完毕之后直接执行brew install wine即可。