<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    stone2083

    DNS代理服務(wù)器

    背景接上文:http://www.tkk7.com/stone2083/archive/2011/05/23/350875.html
    隨筆摘自6月13日郵件分享
    目前此軟件在公司測(cè)試環(huán)境上運(yùn)行良好,故分享給大家。

    以下為分享內(nèi)容:

    好處

    1.       一個(gè)項(xiàng)目、小需求,需要綁定的Hosts,只需要一份Hosts信息即可。不必每個(gè)用戶自行管理各自電腦的Hosts。達(dá)到一人配置,多人使用的目的

    2.       綁定的Hosts,支持通配符。方便類似旺鋪域名的需求,只需要配置一個(gè)帶通配符的域名即可

    3.       要在不同項(xiàng)目,小需求切換不同的Hosts時(shí),只需要輕輕一點(diǎn),方便

    4.       要想使用代理服務(wù)器,只需要本地DNS設(shè)置一下即可,方便

    5.       本機(jī)Hosts配置優(yōu)先

     

    如何使用:(以10.20.131.207環(huán)境介紹)備注:公司內(nèi)部環(huán)境,外部無法訪問,如果需要,請(qǐng)自行搭建

    1.       登陸DNS后臺(tái)管理頁面URLhttp://10.20.131.207:8000/,點(diǎn)擊Add


    2.       添加一個(gè)項(xiàng)目的Hosts信息,點(diǎn)擊添加


    3.       Hosts信息頁面,點(diǎn)擊assign,綁定自己電腦IP和某個(gè)Hosts的關(guān)聯(lián)


    4.       IP List頁面上,顯示了不同IPHosts關(guān)聯(lián)的信息


    5.       將本機(jī)電腦的DNS服務(wù)器設(shè)置成DNS代理服務(wù)器即可(10.20.131.207-- 只需要一次操作即可,以后一直能用

    左圖為windows配置,右圖為linux配置

     

    此時(shí),你訪問域名,如果在2011tp hosts中,則直接返回Hosts中的IP;反之,則返回真實(shí)IP。


    如何啟動(dòng)服務(wù)
    1. 啟動(dòng)DNS代理服務(wù)器服務(wù)
    1.1 cd dns/dns
    1.2 vi settings.py 修改配置信息
    1.3 python -u main.py

    2. 啟動(dòng)DNS BackOffice服務(wù)
    2.1 cd dns/config
    2.2 vi settings.py 修改配置信息
    2.3 python -u manage.py runserver


    軟件下載:DNS Proxy Server

    ============================================================================================
    為了滿足“邪惡”的人們能更方便的使用這個(gè)軟件(貌似邪惡的人特別看重這個(gè)軟件通配符的功能,具體邪惡在哪里,我不具體描述了,給個(gè)鏈接),我特意寫了一個(gè)standalone的版本:
    1. 去除無用的backoffice功能
    2. 去除通過事件機(jī)制reload hosts文件的功能
    3. 去除復(fù)雜的settings配置文件,改用簡(jiǎn)單的命令行方式
    4. 特意為windows用戶制作了一個(gè)exe文件,可以直接使用

    linux用戶使用方案:
    python standalone.py -s xxx.xxx.xxx.xxx (上級(jí)dns地址)
    python standalone.py -s xxx.xxx.xxx.xxx -f /etc/hosts2 (指定hosts文件,默認(rèn)是/etc/hosts)

    windows用戶使用方案,進(jìn)入dist(exe發(fā)布目錄)
    dns.exe -s xxx.xxx.xxx.xxx (上級(jí)dns地址)
    dns.exe -s xxx.xxx.xxx.xxx -f d:/hosts (指定hosts文件,默認(rèn)是c:/windows/system32/drivers/etc/hosts)

    對(duì)于不放心使用exe的客戶來說,可以進(jìn)入dns目錄,通過py2exe工具自行發(fā)布成exe軟件,方法如下
    python setup.py py2exe

    standalone版本下載

    posted on 2011-07-04 20:39 stone2083 閱讀(9430) 評(píng)論(23)  編輯  收藏 所屬分類: python

    Feedback

    # re: DNS代理服務(wù)器 2011-07-07 10:11 mj

    增加使用memcache代替讀取配置文件的功能

    vim proxy_dns.py

    import memcache

    mc = self.server.mc

    ip = mc.get(domain)
    #ip = hosts.get_ip(self.client_address[0], domain)


    self.mc = memcache.Client(['127.0.0.1:11211'], debug=0)

    #qq 56185089  回復(fù)  更多評(píng)論   

    # re: DNS代理服務(wù)器 2011-07-07 10:18 Dahai

    因?yàn)閷?duì)程序不是很了解,能否說一下在Windows下具體怎樣安裝使用這個(gè)dns服務(wù)器  回復(fù)  更多評(píng)論   

    # re: DNS代理服務(wù)器 2011-07-07 11:27 stone2083

    @mj
    挺好的想法。
    目前我們公司并行開發(fā)項(xiàng)目量不大,所以理論上特殊化的hosts并不會(huì)多得離譜。
    所以在DNS代理服務(wù)器端,完全使用了內(nèi)存cache(Hosts文件內(nèi)容一次性load到內(nèi)存中)
    DNS BackOffice為了實(shí)現(xiàn)簡(jiǎn)單,暫時(shí)通過文件的方式保存hosts信息。

    如果要完善這個(gè)產(chǎn)品,確實(shí)需要考慮一些中間件。相比于memcache,我可能會(huì)選擇TT Server(即有底端存儲(chǔ),又兼容mc協(xié)議)  回復(fù)  更多評(píng)論   

    # re: DNS代理服務(wù)器 2011-07-07 11:38 stone2083

    @Dahai
    確實(shí),我還真沒有在windows下做過測(cè)試 :(
    理論上,python是跨平臺(tái)的,需要做的事情,也差不多
    1. 安裝python
    2. 安裝Django框架
    3. 下載附件,解壓
    4. 進(jìn)入dns/dns,修改settings.py配置文件,主要是配置hosts存儲(chǔ)路徑和代理服務(wù)器ip等信息
    5. 命令提示符下,python main.py
    6.進(jìn)入dns/config,修改settings .py配置文件,主要是配置hosts存儲(chǔ)路徑和代理服務(wù)器通訊地址(一旦修改hosts信息,需要通知給dns代理服務(wù)器)
    7.命令提示符下,python manager.py runserver 0.0.0.0:8000

    貌似有工具可以將python程序制作成exe文件。我可以嘗試下。
    你這邊也有類似的需求嗎?  回復(fù)  更多評(píng)論   

    # re: DNS代理服務(wù)器 2011-07-07 20:14 Dahai

    我原以為是非常實(shí)用的小軟件,沒想到光配置問題我就解決不了,看來這確實(shí)不適合我啊@stone2083
      回復(fù)  更多評(píng)論   

    # re: DNS代理服務(wù)器 2011-07-08 22:08 geyee

    does it support ipv6 通配符 ?  回復(fù)  更多評(píng)論   

    # re: DNS代理服務(wù)器 2011-07-09 19:49 stone2083

    @geyee
    支持通配符,但是沒支持ipv6--目前還沒有這個(gè)需求。  回復(fù)  更多評(píng)論   

    # re: DNS代理服務(wù)器 2011-07-15 16:13 Diky

    這個(gè)程序很有用,我借助它解決了很多單靠hosts不好解決的「國情」問題(感覺我用在歪道上了…)
    要不要考慮作為開源程序把代碼托管到google code呢?  回復(fù)  更多評(píng)論   

    # re: DNS代理服務(wù)器 2011-07-16 23:03 stone2083

    @Diky
    ^_^,貌似看中通配符功能用于干其他用途的客戶還不少嘛。我特意寫來一個(gè)standalone版本的,可以更方便的使用。具體說明我已經(jīng)補(bǔ)充在正文下方了。
    這個(gè)代碼,我本來就是放在googlecode上,地址為:https://stonelab.googlecode.com/svn/trunk/dns
    只是這個(gè)東東只是我用業(yè)余時(shí)間搞出來的實(shí)驗(yàn)版本,還算不上真正的產(chǎn)品,所以還是低調(diào)點(diǎn)。  回復(fù)  更多評(píng)論   

    # re: DNS代理服務(wù)器 2011-09-15 15:20 zhouzm

    請(qǐng)問,能不能支持域名排除
    比如 *.abc.com我要指向一個(gè)IP,但 yyy.abc.com 和 zzz.abc.com還是交給DNS解析  回復(fù)  更多評(píng)論   

    # re: DNS代理服務(wù)器 2011-09-15 16:01 stone2083

    @zhouzm
    可以做,不過需要自定義Hosts語法,然后修改hosts.py get_ip方法。
    當(dāng)然最簡(jiǎn)單的方式,就是加一份filter列表,filter中的host,直接交給上級(jí)DNS。
    可以嘗試自己修改下。

    這個(gè)需求雖然合理,但是有違系統(tǒng)Hosts語法,Hosts理念都是正向的,
    1. 系統(tǒng)Hosts語法, equals(host) (相等匹配)
    2. 我擴(kuò)展了一下,wildcard_match(host) (通配符匹配)
    3. 甚至可以利用正則擴(kuò)展,pattern_match(host) (正則匹配)  回復(fù)  更多評(píng)論   

    # re: DNS代理服務(wù)器 2011-09-15 16:21 zhouzm

    感謝回復(fù)!

    我是個(gè)python盲啊,不會(huì)改

    既然要保持Hosts的語法,我建議不如把擴(kuò)展部分獨(dú)立出來,使用另外的配置文件保存,這樣在擴(kuò)展的時(shí)候就更靈活,我看了一下類似的DNS緩存軟件,例如Acrylic就是這么做的
      回復(fù)  更多評(píng)論   

    # re: DNS代理服務(wù)器 2011-09-15 20:16 stone2083

    @zhouzm
    如果僅僅是上面描述的需求,那么擴(kuò)展filter邏輯,也是方便的一個(gè)事情。
    只是設(shè)計(jì)擴(kuò)展點(diǎn),本身不是一件輕松的事情。需要對(duì)需求進(jìn)行相對(duì)全面的分析。
    就拿你這個(gè)需求來說,哪怕獨(dú)立了擴(kuò)展點(diǎn),保持了Hosts的語法,但是卻改變了Hosts的語意:你需要對(duì)Hosts信息做exclude操作。

    所以,如果不歸納需求,那么擴(kuò)展點(diǎn)非常難設(shè)計(jì)。甚至于到最后,需要非常復(fù)雜的DSL語言來描述。

    python不難,花個(gè)2-3個(gè)小時(shí),就差不多掌握語法了。如果要簡(jiǎn)單實(shí)現(xiàn)你的需求。
    1. 配置filter列表
    2. hosts.py 中,加入self.filter_list,get_ip的時(shí)候,優(yōu)先判斷filter_list.
      回復(fù)  更多評(píng)論   

    # re: DNS代理服務(wù)器 2012-02-22 15:37 Jackie

    要是能做成Windows后臺(tái)程序開機(jī)自動(dòng)運(yùn)行就好了……  回復(fù)  更多評(píng)論   

    # re: DNS代理服務(wù)器 2012-02-22 16:41 stone2083

    @Jackie
    用一個(gè)bat腳本封裝,放入自啟動(dòng)目錄下,就能滿足你的需求了。  回復(fù)  更多評(píng)論   

    # re: DNS代理服務(wù)器[未登錄] 2012-07-12 18:28 Lee

    博主!您好!
    您的程序可以改造成這樣子嗎:
    如果匹配則返回相應(yīng)IP,否則再交給操作系統(tǒng)處理。
    主要是不想指定額外的DNS。
    因?yàn)槠綍r(shí)網(wǎng)卡的設(shè)置都是讓DNS自動(dòng)獲取的,在不同地方辦公自動(dòng)獲取到的DNS也可能會(huì)不同,指定某些DNS可能在某些地方反而更慢,如果讓這個(gè)程序不需要指定上級(jí)dns地址會(huì)方便好多。
      回復(fù)  更多評(píng)論   

    # re: DNS代理服務(wù)器 2012-07-12 19:47 stone2083

    @Lee
    理論上應(yīng)該是可行的--就是程序中設(shè)法獲取默認(rèn)的DNS。
    我周末有空的時(shí)候去研究下,可以的話,就修改下。  回復(fù)  更多評(píng)論   

    # re: DNS代理服務(wù)器 2012-07-16 10:40 stone2083

    @Lee
    可行性還是用的,就是利用dhcp client獲取默認(rèn)DNS信息。
    不過開發(fā)的成本比較大,寫一份dhcp協(xié)議的解析,客戶端;還要測(cè)試多網(wǎng)卡下的場(chǎng)景,PPPOE下的測(cè)試,等等。
    不知道你的需求緊迫嗎?

    或者可以使用稍微麻煩的辦法:
    1. windows下,使用ipconfig /all
    2. linux下, cat /etc/resolv.conf
    可以查看默認(rèn)的DNS,之后再修改成我的DNS Proxy地址。  回復(fù)  更多評(píng)論   

    # re: DNS代理服務(wù)器 2012-08-22 17:35 Brilliance

    沒用
    plus.google.com  回復(fù)  更多評(píng)論   

    # re: DNS代理服務(wù)器 2015-04-20 22:57 麥田

    發(fā)現(xiàn)了這個(gè)幾年前寫的小程序,非常棒,不知道這樣的腳本能不能在安卓上運(yùn)行,可能想多了……,電腦fq簡(jiǎn)單安卓fq太麻煩了,要考慮省電穩(wěn)定問題,不fq谷歌服務(wù)更耗電  回復(fù)  更多評(píng)論   

    # re: DNS代理服務(wù)器 2015-04-22 21:08 stone2083

    @麥田
    比較困難
    如果是為了FQ考慮,可能需要想其他方案.  回復(fù)  更多評(píng)論   

    # re: DNS代理服務(wù)器[未登錄] 2015-08-31 17:42 yang

    127.0.0.1 -- [Mon Aug 31 17:38:50 2015] 129.52.208.203.in-addr.arpa Not Found
    127.0.0.1 -- [Mon Aug 31 17:39:04 2015] 210.93.79.117.in-addr.arpa Not Found
    127.0.0.1 -- [Mon Aug 31 17:39:04 2015] 210.93.79.117.in-addr.arpa Not Found
    127.0.0.1 -- [Mon Aug 31 17:39:13 2015] 210.174.201.101.in-addr.arpa Not Found
    127.0.0.1 -- [Mon Aug 31 17:39:22 2015] 124.213.9.121.in-addr.arpa Not Found
    127.0.0.1 -- [Mon Aug 31 17:39:31 2015] 221.93.79.117.in-addr.arpa Not Found
    127.0.0.1 -- [Mon Aug 31 17:39:40 2015] 194.73.112.114.in-addr.arpa Not Found


    最近不知道怎么了,全都是這樣的,但是又沒什么影響。百度過說是什么反代理,具體也不明白什么意思。  回復(fù)  更多評(píng)論   

    # re: DNS代理服務(wù)器 2015-09-01 12:42 stone2083

    @yang
    這個(gè)是反向域名解析查詢.
    不影響正常使用.  回復(fù)  更多評(píng)論   

    主站蜘蛛池模板: 日本高清免费中文在线看| 亚洲国产91精品无码专区| 一级视频在线免费观看| 亚洲免费观看网站| 国产亚洲人成网站在线观看不卡| 毛片免费观看的视频| 在线观看免费无码专区| 国产亚洲视频在线观看网址| 亚洲高清无在码在线无弹窗| 国产亚洲成人在线播放va| 麻豆成人精品国产免费| 在线精品一卡乱码免费| 久久伊人免费视频| 成av免费大片黄在线观看| 久久精品国产亚洲av天美18| 亚洲卡一卡2卡三卡4麻豆| 久久香蕉国产线看观看亚洲片| 亚洲精品视频免费| 国产伦一区二区三区免费| 色窝窝免费一区二区三区| 最近中文字幕国语免费完整| 色播在线永久免费视频网站| 男女啪啪免费体验区| 亚洲av永久中文无码精品综合| 久久亚洲精品专区蓝色区| 亚洲第一页在线观看| 久久久久亚洲av无码专区喷水| 国产AV无码专区亚洲AVJULIA| 亚洲国产综合久久天堂| 免费a级毛片18以上观看精品| 日本一道一区二区免费看 | 国产成人免费网站| 18禁美女黄网站色大片免费观看| 久久青草精品38国产免费| 13小箩利洗澡无码视频网站免费| 久久久久久毛片免费看| 国产精品免费大片一区二区| 一个人看的www视频免费在线观看 一个人看的免费观看日本视频www | 无码精品A∨在线观看免费| 91九色视频无限观看免费| 久久成人国产精品免费软件|