iT邦幫忙

0

使用瀏覽器的自動組態指令碼

匿名 2009-05-12 15:57:3021617 瀏覽
  • 分享至 

  • xImage

請問一下~公司的網段是192.168.11.0/24,
如何讓公司的同仁在內部一定得透過proxy連網。
當同仁一旦把電腦攜出時,
可以直接連網。
目前想到的是用瀏覽器的自動組態指令碼。
請問一下該怎麼做才好呢?
謝謝

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
28
vincent118
iT邦高手 5 級 ‧ 2009-05-12 17:43:11
最佳解答

我不是很清楚你的需求,所以用最低的要求做了一個範例,可以參考。我沒有實測過這個script,所以建議你還是看一下答案最後的網址。
首先要建立一個檔案附檔名為.pac,例如: proxy.pac。這個檔案要放在公司內外不須透過Proxy就可以access到的地方,例如: http://123.abc.com/proxy.pac

Pac檔案的內容如下:

function FindProxyForURL(url, host)
{
if( dnsDomainIs(host, "localhost") ||
dnsDomainIs(host, "hinet.net") ){
return "DIRECT";
}
else if (isInNet(myIpAddress(), "192.168.10.0", "255.255.255.0") ||
isInNet(myIpAddress(), "10.12.0.0", "255.255.255.0")){
return "PROXY proxy.abc.com.tw:8080";
}
else {
return "DIRECT";
}
}

說明如下:
第一段
if( dnsDomainIs(host, "localhost") ||
dnsDomainIs(host, "hinet.net") ){
return "DIRECT";
}
如果domain是 localhost 或是hinet.net,就直接連線。如果要新增條件用||分開,要注意{}以及()要對稱。

第二段
else if (isInNet(myIpAddress(), "192.168.10.0", "255.255.255.0") ||
isInNet(myIpAddress(), "10.10.10.0", "255.255.255.0")){
return "PROXY proxy.abc.com.tw:8080";
}
如果電腦的ip是192.168.10.0或是10.10.10.0,就是在公司內網就使用proxy server “proxy.abc.com.tw:8080”

其餘的IP位置都直接連線。

你可以參考下面網頁,全部爬過一定寫得出來,加油!
http://en.wikipedia.org/wiki/Proxy_auto-config

看更多先前的回應...收起先前的回應...
匿名 檢舉

謝謝~目前正在嘗試中~

匿名 檢舉

語法已經OK了~只是還在測試中~
感覺不太穩定~
目前發現FIREFOX似乎不行。
我PAC是放在本機端不知有沒有關係~

cooch iT邦研究生 3 級 ‧ 2009-05-13 14:29:56 檢舉

如果用戶端電腦數量很多,
將PAC檔放在用戶端電腦上這個方式將會產生 PAC 檔版本維護的即時性跟有效性,

所以要將PAC檔放在,web serve上。這樣才方便啊!
另外PAC檔的設定可以用Group Policy去統一設定,也可以停用auto proxy 設定檔的快取,因此在版本控制上應該還算容易。

24
bizpro
iT邦大師 1 級 ‧ 2009-05-12 16:18:41

您指的是強制將80port的流量導向Transparent Proxy Server, 通透式代理服務器, 使用者不需設定proxy, 在公司內外都可上網, 但是因為是通透式, 所以使用者在公司內上網都會經過proxy server的管控的.
建議使用http://www.squid-cache.org/
有一些參考文章:
http://www.deckle.co.za/squid-users-guide/Transparent_Caching/Proxy
http://www.ubuntugeek.com/how-to-setup-transparent-squid-proxy-server-in-ubuntu.html
或googling: transparent squid proxy

匿名 檢舉

其實對我來說最好的情況就是如此,因本公司gateway與nat是fw且不支援port redirect或其他redirect的方式,所以一旦要改架構似乎都要進行調整。
目前我用的proxy就是squid。
請問有什建議的架構嗎?
謝謝

匿名 檢舉

目前的版本是Squid 2.7 Stable3~
OS是UBUNTU SERVER EDTION 9.04。
只是要做Transparent Proxy似乎都要搭配redirect才有辦法。

10
cooch
iT邦研究生 3 級 ‧ 2009-05-13 12:21:50

除了正確 PAC 的 Scipt 撰寫外,
如何讓用戶端找到這個 PAC 檔又是另外一個關鍵點,

有兩種方式讓用戶端電腦找到 PAC 檔:

1 自動偵測:
內網的DNS查詢解析系統有很多要設定的地方,
這部份給他有點複雜,
完整說明請看:
如何設定 Microsoft DNS 和 WINS 保留 WPAD 登錄
http://support.microsoft.com/kb/934864
Create a WPAD Entry in DHCP
http://technet.microsoft.com/en-us/library/cc940962(WS.10).aspx
這種方式如果運作順利,
其實是最佳的方式,

但實務上少數電腦無法自動找到PAC檔,
這些電腦無法自動找到PAC檔的問題通常不易排除,
只能使用地2種方式,

2 直接在瀏覽器上設定自動組態指令碼(PAC)的所在位置:
這種方式比較麻煩的是需要每台電腦都去設定 PAC 的路徑,
優點是絕對不會發生像第一種方式找不到 PAC 的問題,
而且由於是直接按照指定的路徑去讀取 PAC 檔,
省掉自動偵測及搜尋 PAC 的動作,
所以第一個網頁頁面開啟的速度也會比較快!

匿名 檢舉

謝謝大家的回應~之前有看了一下自動偵測的部份,
但問題也是卡在dhcp伺服器並不是windows base。
所以可能會有問題。
目前設定自動組態指令碼的部份已完成測試。
還在想有沒有辦法換成Transparent Proxy的方式

我要發表回答

立即登入回答