自從 Windows 98 SE 開始,網路的芳鄰 (Samba) 便可以透過 TCP/IP 協定進行連線與溝通,既然是 TCP/IP 那就表示這項服務是可以路由的。很久前在 Internet 上是可以直接對遠端電腦進行網路芳鄰連線,但自從 Nimda Virus(大名鼎鼎的那坦病毒)盛行之後,許多路由器就開始拒絕對 TCP 139/445 的路由,那時候開始就在也不能透過 Internet 使用網路的芳鄰服務。
那時候為了克服這個問題,透過修改 Window Registry 來更換網路的芳鄰預設使用的 TCP 139/445 Port,對應 File Server (Linus-base) 進行 iptables 的設定來繞過 Internet Router 的防堵,確實就可以順利使用網路的芳鄰了(其實用 VPN 比較安全)。
分享一下修改 Windows Samba Port 的機碼,把 SessionPort 與 DatagramPort 改成你要的 Port(使用16進位)即可,範例如下:
Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\NetBT\Parameters\Smb] "SessionPort"=dword:0000CCDD "DatagramPort"=dword:0000CCDD
Linux iptables 設定方法如下:
iptables -t nat -A PREROUTING -p rcp --dport 139 -s $CLIENT_IP -j DNAT --to-destination $SERVER_IP:139 iptables -t nat -A PREROUTING -p rcp --dport 445 -s $CLIENT_IP -j DNAT --to-destination $SERVER_IP:445