Proxy hg克隆无法访问网络

Proxy hg克隆无法访问网络,proxy,mercurial,Proxy,Mercurial,Autoproxy安装在我的firefox上,购买vps服务后,每个网站都可以通过socket5代理服务浏览 apt-get install mercurial #on my local pc hg clone https://vim.googlecode.com/hg/ /tmp/vim #on my local pc abort: error: Network is unreachable 可以通过Firefox中的autoproxy进行访问。 如何在我的远程VPS上构建某种代理服

Autoproxy安装在我的firefox上,购买vps服务后,每个网站都可以通过socket5代理服务浏览

apt-get install mercurial  #on my local pc
hg clone https://vim.googlecode.com/hg/   /tmp/vim  #on my local pc
abort: error: Network is unreachable
可以通过Firefox中的autoproxy进行访问。
如何在我的远程VPS上构建某种代理服务,使
hg clone
命令到达

并不是所有的网站都可以在这里访问,我已经建立了一个通过Firefox访问它们的阶梯

如何在我的VPS(远程PC上)上制作另一个梯形图,以使
hg clone
命令在我的本地PC上运行

每次我用我的VPS和Firefox制作阶梯时:

  • 在本地pc中输入ssh命令

    ssh -D 127.0.0.1:1080  -p 1234 root@44.44.44.44
    
  • 单击Autoproxy插件进入全局模式。它在套接字5代理中设置为良好状态

  • 现在我可以参观我想参观的地方了


  • 如何编写
    hg clone
    命令?

    我建议首先为本地mercurial实例配置代理设置。检查hg帮助配置,并在那里查找代理

    "http_proxy"
    ------------
    
    Used to access web-based Mercurial repositories through a HTTP proxy.
    
    "host"
        Host name and (optional) port of the proxy server, for example
        "myproxy:8000".
    
    "no"
        Optional. Comma-separated list of host names that should bypass the
        proxy.
    
    "passwd"
        Optional. Password zur Authentifikation mit einem Proxy-Server.
    
    "user"
        Optional. User name to authenticate with at the proxy server.
    
    "always"
        Optional. Always use the proxy, even for localhost and any entries in
        "http_proxy.no". (default: False)
    

    要对Mercurial使用代理,您可以在命令前面加上
    http\u proxy

    http_proxy=http://proxy-server:8080 hg clone https://vim.googlecode.com/hg
    
    或者在
    ~/.hgrc
    中配置为:

    [http_proxy]
    host=proxy-host:port
    user=username
    passwd=password
    
    [extensions]
    socks_proxy = /path/to/socks_proxy.py
    
    [socks_proxy]
    host = localhost:9150
    
    由于您使用的是SOCKS5代理,Mercurial(撰写本文时为3.7.2)尚不支持这一点,但基于以下内容,它仍有可用性

    延伸 您可以下载Mercurial DVCS的一个小扩展,以启用SOCKS5代理的使用:

    因此,您可以将
    ~/.hgrc
    中的代理配置为:

    [http_proxy]
    host=proxy-host:port
    user=username
    passwd=password
    
    [extensions]
    socks_proxy = /path/to/socks_proxy.py
    
    [socks_proxy]
    host = localhost:9150
    
    要使用SOCKS5代理进行实验,可以使用SSH的-D选项, 它创建了这样一个通过SSH连接运行的代理。 或者,您可以运行Tor,它也会启动SOCKS5代理 (可能在端口9050或端口9150上)

    补丁 上述扩展基于Bug Heisen发布的原始修补程序,您可以通过以下代码进行应用:

    diff -r 12f161f08d74 -r 3f58227755ed mercurial/url.py
    --- a/mercurial/url.py  Tue Apr 01 23:41:32 2014 -0700
    +++ b/mercurial/url.py  Sun Apr 06 16:16:02 2014 +0200
    @@ -63,6 +63,44 @@
    
     class proxyhandler(urllib2.ProxyHandler):
         def __init__(self, ui):
    +
    +        # First, check if a SOCKS5 proxy is set, using a line 'host = ...' in 
    +        # the [socks_proxy] section of the config file.
    +
    +        proxyurl = ui.config("socks_proxy", "host")
    +
    +        if proxyurl:
    +            idx = proxyurl.find(":")
    +            if idx < 0:
    +                raise util.Abort(_("host in socks_proxy should be "
    +                                   "hostname:port"))
    +
    +            host = proxyurl[:idx]
    +            portstr = proxyurl[idx+1:]
    +            try:
    +                port = int(portstr)
    +            except ValueError:
    +                raise util.Abort(_("Cannot interpret '%s' in the socks_proxy "
    +                                   "host line as an integer port number") 
    +                                   % portstr)
    +
    +            if port <= 0 or port > 65535:
    +                raise util.Abort(_("Port number in socks_proxy host line "
    +                                   "must lie between 1 and 65535, but is "
    +                                   "%d") % port)
    +
    +            ui.note("Setting SOCKS5 proxy to %s:%d\n" % (host, port))
    +                    
    +            try:
    +                import socks
    +                socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5, host, port)
    +                socket.socket = socks.socksocket
    +            except ImportError:
    +                raise util.Abort(_("The SocksiPy socks module is needed for "
    +                                   "SOCKS support"))
    +
    +        # Then check for a http/https proxy
    +        
             proxyurl = ui.config("http_proxy", "host") or os.getenv('http_proxy')
             # XXX proxyauthinfo = None
    
    diff-r 12f161f08d74-r 3f58227755ed mercurial/url.py
    ---a/mercurial/url.py周二4月1日23:41:32 2014-0700
    +++b/mercurial/url.py Sun四月06日16:16:02 2014+0200
    @@ -63,6 +63,44 @@
    类proxyhandler(urllib2.proxyhandler):
    定义初始化(自我,用户界面):
    +
    +#首先,使用中的“host=…”行检查是否设置了SOCKS5代理
    +#配置文件的[socks_proxy]部分。
    +
    +proxyurl=ui.config(“socks\u代理”、“主机”)
    +
    +如果代理URL:
    +idx=proxyurl.find(“:”)
    +如果idx<0:
    +raise util.Abort(U8;(“socks中的主机\u代理应为”
    +“主机名:端口”))
    +
    +主机=代理URL[:idx]
    +portstr=proxyurl[idx+1:]
    +尝试:
    +port=int(portstr)
    +除值错误外:
    +raise util.Abort(无法解释socks代理中的“%s”)
    +“主机线作为整数端口号”)
    +%portstr)
    +
    +如果端口65535:
    +raise util.Abort(U8;(“socks_代理主机行中的端口号”)
    +必须介于1和65535之间,但为
    +%d”)%端口)
    +
    +ui.注意(“将SOCKS5代理设置为%s:%d\n”%(主机、端口))
    +                    
    +尝试:
    +进口袜子
    +socks.setdefaultproxy(socks.PROXY_TYPE_SOCKS5,主机,端口)
    +socket.socket=socks.socket
    +除恐怖外:
    +raise util.Abort(389;(“需要SocksiPy socks模块”
    +“袜子支架”))
    +
    +#然后检查http/https代理
    +        
    proxyurl=ui.config(“http\u proxy”、“host”)或os.getenv(“http\u proxy”)
    #XXX proxyauthinfo=无
    
    然后在
    ~/.hgrc
    中使用
    socks\u proxy
    而不是
    http\u proxy
    (如上所示)

    有关此修补程序的原始说明:

    此修补程序使用“socks”模块增加了对SOCKS5代理的支持 来自SocksiPy项目(需要单独安装)。因为 修改的是“proxyhandler”函数,它只起作用 用于HTTP/HTTPS协议。对于SSH协议,使用SOCKS代理 通过指定
    ProxyCommand
    选项

    补丁中硬编码了SOCKS5版本,但是
    socks
    模块还应支持其他版本。那么其他的袜子版本呢 以同样的方式进行,但代码需要修改 支持他们

    出于测试目的,最好知道SSH可以创建SOCKS5 使用
    -D
    命令行标志的代理。使用Tor也会产生这样的结果 代理,通常位于端口9050或9150上


    Vim不再出现在Google代码上,而且已经有一段时间没有出现了。回购协议已经六个月没有更新了。如果你真的想继续使用mercurial,那就有了。