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

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

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

    Read Sean

    Read me, read Sean.
    posts - 508, comments - 655, trackbacks - 9, articles - 4

    ssh+tsocks - 遠程辦公利器

    Posted on 2011-02-09 22:37 laogao 閱讀(5391) 評論(5)  編輯  收藏 所屬分類: Computer Usage

    設想一下這樣的場景: 你出差在外,或者生病在家,有個緊急的需求要處理,涉及到數個源代碼文件的改動,你親自修改需要10分鐘,電話和在公司的同伴溝通然后由他/她來修改則需要1小時。公司svn服務僅支持svn://協議,且僅限內網訪問,而你只有一個ssh賬號可以遠程登錄到公司某臺Linux/UNIX服務器。

    你暗自慶幸,幸好管理員有先見之明,為你留了個ssh口子,這樣至少你還可以ssh上去通過命令行的方式在服務器上做svn checkout,vim ...和svn commit。不過如果你認為這就是全部,那就太小瞧ssh了。

    ssh有個命令行參數 -D [地址:]端口,含義是在某個本地地址的某個端口上開SOCKS服務進行監聽,把這個端口的數據通信以加密形式轉發到ssh的另一端。你說好,我有了一個SOCKS服務器,但我又不是要上網走代理,svn也并不天然支持SOCKS啊,有什么用呢? 嗯,這正是tsocks的用武之地,它能透明的讓普通應用程序也走SOCKS,安裝方法很簡單: 主流的Linux發行版,如Debian、Archlinux等的默認軟件倉庫已經自帶了tsocks,通常只需要apt-get install或pacman -S即可,Mac OS X下則可以利用MacPorts安裝,然后修改配置文件/etc/tsocks.conf(MacPorts會安裝到/opt/local/etc目錄),可以在樣本文件tsocks.conf.sample的基礎上修改,通常只要配置server = 127.0.0.1即可,其他都可以默認。

    有了這些打底,剩下的就很簡單了: 首先 ssh -D 1080 -f -N 用戶名@公司服務器的公網地址 在本機的1080端口開啟SOCKS服務;然后按照你平時使用svn的習慣,只是在命令前加上tsocks,類似這樣: tsocks svn up 或者 tsocks svn ci -m 'blahblahblah' 等等即可,本地的svn sandbox不需要任何修改。

    這個例子可以說只是冰山一角,不論是ssh還是tsocks都還有更高級的用法,而這個通道一旦打通,它的效果就像是簡化版的VPN,除了ping之類的少數命令外,幾乎就跟你在公司做各種操作沒有兩樣,所以,發揮你的想象力吧 :)

    Feedback

    # re: ssh+tsocks - 遠程辦公利器  回復  更多評論   

    2011-02-09 22:56 by 沈覓仁
    這樣是否是太折騰了?
    Tsocks也只是針對又需要網絡通信的程序才有用罷了,而且以你的例子來看,也就是方便(穿墻、避開svn訪問權限)更新Svn。總不能執行編輯、編譯吧?
    $ tsocks vim a.cpp
    $ tsocks make all

    另外,有關遠程工作(寫代碼、編譯啥的),我還是喜歡GNU screen

    # re: ssh+tsocks - 遠程辦公利器  回復  更多評論   

    2011-02-09 23:12 by laogao
    @沈覓仁
    執行編輯和編譯操作通常都是在本地要做的事兒,svn的sandbox在哪里檢出,哪里就適合做這些操作。vpn不也是解決網絡訪問的問題嗎,呵呵。

    # re: ssh+tsocks - 遠程辦公利器  回復  更多評論   

    2011-02-10 10:58 by Ian Yang
    只是svn服務器的話用不著動態綁定,用-L做本地端口轉發就好了

    假設有 ssh_server, svn_server

    ssh_server是你有SSH權限那臺服務器的IP或域名,svn_server是從ssh_server上可以訪問到SVN服務器的IP或域名,svn_server是在ssh_server上解析的,所以可以用svn_server的內網IP

    用下面的命令,訪問本地3690,都相當 *從ssh_server* 訪問svn_server的3690

    $ ssh -L 3690:svn_server:3690 user@ssh_server

    然后把本機當成svn服務器就行了

    $ svn checkout svn://localhost/project1

    很久前畫了些圖展示三種端口轉發的作用 http://www.doitian.com/2010/06/illustration-of-ssh-port-forwarding/

    # re: ssh+tsocks - 遠程辦公利器  回復  更多評論   

    2011-02-10 13:35 by laogao
    @Ian Yang
    謝謝你提供的鏈接,很直觀的介紹,只是其中有些文字和圖示不匹配,L、R、D什么的,可能會讓人看不懂。

    我之所以用-D而不是-L,主要是考慮到需要先后訪問多個服務的時候,每個服務都去開個tunnel顯得不夠靈活,還是-D最省事也更接近VPN的效果一些,呵呵。

    # re: ssh+tsocks - 遠程辦公利器  回復  更多評論   

    2011-02-10 14:14 by laogao
    @Ian Yang
    用-L還有個問題,那就是我本地的svn sandbox已經自帶了資源庫IP地址等信息,本地端口轉發意味著我還要做一次svn switch --relocate,回到公司還得再改回來,這也是件麻煩事兒 ^_^
    主站蜘蛛池模板: 亚洲熟女一区二区三区| 日本高清免费不卡在线| 亚洲精品国产品国语在线| 免费观看四虎精品成人| 免费v片在线观看品善网| 日韩色日韩视频亚洲网站| 免费一级大黄特色大片| 思思久久99热免费精品6| 亚洲中文字幕视频国产| 国产特黄特色的大片观看免费视频| 亚洲成AⅤ人影院在线观看| jizz免费在线观看| 久久精品国产精品亚洲艾草网美妙| 国产福利免费视频| 亚洲日本精品一区二区| 久久午夜夜伦鲁鲁片无码免费| 亚洲国产高清在线| 国产在线观看片a免费观看| 亚洲综合丁香婷婷六月香| 免费黄色一级毛片| 一区二区三区免费在线视频 | 韩国18福利视频免费观看| 国产精品亚洲天堂| 亚洲无人区一区二区三区| 一级毛片**不卡免费播| 亚洲成A∨人片在线观看无码| 最近免费中文字幕4| free哆拍拍免费永久视频| 久久久无码精品亚洲日韩京东传媒 | 成全视频免费观看在线看| 亚洲专区在线视频| 永久免费av无码网站大全| 亚欧国产一级在线免费| 久久久无码精品亚洲日韩按摩| 大学生一级毛片免费看| 日韩免费高清一级毛片| 久久精品亚洲中文字幕无码网站| 啦啦啦高清视频在线观看免费 | 免费在线观看中文字幕| 免费观看在线禁片| 亚洲aⅴ无码专区在线观看春色|