V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
mainlong
V2EX  ›  Ubuntu

请教如何正确设置 Ubuntu 的代理,好折腾

  •  
  •   mainlong · 2019-09-08 16:06:21 +08:00 · 1547 次点击
    这是一个创建于 1663 天前的主题,其中的信息可能已经有所发展或是发生改变。

    系统环境: ·虚拟机+Ubuntu1804 ·系统代理 Network Proxy 设置 socks host,配合 sslocal 命令上网。

    本来用的好好的,没感觉啥,在终端用 requests.get 就遇到问题了,报错发现没找到 socks 支持. 去网上找了下,试了各种方案,也认真了解代理有关内容。

    整理下现状:用 network proxy 配合 sslocal 命令 ·用浏览器上百度和谷歌没问题,但百度走代理,很慢。 ·终端直接上百度很快,但是没办法上谷歌,ping 连不上。 ·在当前状态下没办法用 requests.get ,要把系统 proxy 设置成 disable,新开终端才行。

    我的理解: ·系统的 network proxy 不行,需要找一个支持 socks5 的客户端配合 sslocal。这时 requests 的问题应该没有了,但是浏览器上百度很卡,终端上不了谷歌仍然存在。 ·win 下还有个 pac,在 Ubuntu 下又是如何设置的?这个引入的话浏览器上百度应该直走很快的。

    请教大家都是怎么设置 Ubuntu 的代理的,小白自己瞎折腾,网上参差不齐,装了许多都不好使。

    提示 socks 错误

    第 1 条附言  ·  2019-09-11 23:58:21 +08:00

    这几天折腾整理了一点头绪:

    旧方案:sslocal命令配合Network proxy,可以让浏览器上网,但是全部走代理,上百度很卡。
    
    
    新方案:shadowsocks-qt5+SwitchOmega,浏览器分流上网,完美。
    教程参见:![nwInFP.jpg](https://s2.ax1x.com/2019/09/11/nwInFP.jpg)
    
    其它软件、终端可以按命令单独设置也可以系统设置,目前没有测试。
    方案有:tsocks、proxychains、privoxy、polipo、透明代理
    

    建议:

    Network  proxy的socks是个大坑,大家最好不用。requests就在这上面把本问题炸出来了。现在也有一点眉目了,关于requests会新开一个问题请教大家。
    
    虚拟机克隆功能真好,不会测试污染系统了。等测试好了,再移植到原系统。
    
    22 条回复    2019-09-10 22:45:41 +08:00
    xiaomingVTEX
        1
    xiaomingVTEX  
       2019-09-08 16:10:07 +08:00
    我现在就是 ss git5 + SwitchyOmega, 实现浏览器访问 google
    windyland
        2
    windyland  
       2019-09-08 16:45:00 +08:00 via Android
    实体机装酸酸乳,然后 ALL_PROXY=socks5://实体机 ip:1080
    xxx749
        3
    xxx749  
       2019-09-08 17:02:12 +08:00
    SS => privoxy + gfwlist => Network Proxy(HTTP Proxy)
    zxih123
        4
    zxih123  
       2019-09-08 17:45:28 +08:00 via Android
    路由器走代理
    Hconk
        5
    Hconk  
       2019-09-08 20:40:08 +08:00 via iPhone
    主机开 PAC 模式代理,虚拟机全局代理设置走主机 PAC,console 走主机的 socks5 代理。
    shenfu1991
        6
    shenfu1991  
       2019-09-08 20:59:33 +08:00
    好巧,这几天正在研究这方面,可以实现终端( terminal )智能分流(国内直接连接,国外走代理),我用的也是 ubuntu,今天实验了一下,已经成功了。大佬的项目地址 : https://github.com/zfl9/ss-tproxy
    效果: https://wenjian.qianli123.com/ubuntu.png
    shenfu1991
        7
    shenfu1991  
       2019-09-08 21:01:52 +08:00
    还有楼上的各位,终端是不能 pac 的,pac 要执行 js,浏览器可以,这是我搜索到的答案。
    inhzus
        8
    inhzus  
       2019-09-08 21:06:13 +08:00 via Android
    系统不开代理,浏览器 switchy omega,终端得分情况。一般情况 fq 用 proxychains-ng,yay 等写个脚本设置 http_proxy 等等
    steley
        9
    steley  
       2019-09-08 21:17:42 +08:00
    proxychains +1
    jw19961019
        10
    jw19961019  
       2019-09-08 21:19:51 +08:00 via Android
    export http-proxy=
    EscYezi
        11
    EscYezi  
       2019-09-08 21:40:29 +08:00 via iPhone
    之前折腾虚拟机的时候看到一篇文章,虚拟两个网卡,一个桥接一个 NAT,让主机和虚拟机互访问,同时虚拟机也能自由连接网络。
    我在这个基础上,win10 宿主机开了一个 fq 软件监听 http 9999 端口,然后在虚拟机里面终端用 export http_proxy=访问主机的 9999 端口。
    浏览器我就直接用宿主机的 FF 走全局了,感觉国内的也慢不了多少......
    monsterxx03
        12
    monsterxx03  
       2019-09-08 21:43:37 +08:00
    itgoyo
        13
    itgoyo  
       2019-09-09 08:22:57 +08:00
    先 export http-proxy
    然后 proxychains
    tslling
        14
    tslling  
       2019-09-09 08:53:19 +08:00 via Android
    我是图形界面那里把代理 apply system wide,这样所有流量不管是不是终端一股脑发给本地的代理,分流的事情交给代理去做。终端也可以访问百度谷歌了,而且还分流了,感觉比较省心了。
    photon006
        15
    photon006  
       2019-09-09 10:15:15 +08:00
    直接上路由器,这样想,gov 封锁那些网站没有在我们每台设备上安装软件屏蔽网站,而是在骨干出口网络上进行封锁,对应的,我们突破封锁也没必要在每台设备上安装代理软件,在我们家里 /办公室的路由器出口网络安装就行了。
    airdge
        16
    airdge  
       2019-09-09 10:21:15 +08:00
    QT5 访问没啥问题
    proxies={
    'http':'socks5://xxxxx:1080',
    'https':'socks5://xxxxx:1080',
    }

    requests.get(
    url,
    proxies=proxies,
    )
    http://tva1.sinaimg.cn/large/007X8olVly1g6t1twtpekj31bk0rekb3.jpg
    imycc
        17
    imycc  
       2019-09-09 16:20:21 +08:00
    基本情况一致,都是 win10+虚拟机。我是在 win10 开的小飞机,然后在小飞机的选项里,勾选支持来自局域网的链接。期望的是能够在虚拟机里用上代理。我的解决方案不完美,不过能解决部分问题。

    浏览器简单,直接设置浏览器的代理就解决了。
    终端上,一开始用的是`proxychains`,用于`curl`命令工作正常。
    但是用`go get`安装包的时候出问题,最后采用的方案是,安装`polipo`,将 socks5 代理转换成 http 代理,然后再通过`export http_proxy`来设置终端的代理,就可以了。
    mainlong
        18
    mainlong  
    OP
       2019-09-09 23:14:02 +08:00
    @tslling
    18.04 的版本没有这个选项
    ![nNSvgP.jpg]( https://s2.ax1x.com/2019/09/09/nNSvgP.jpg)
    mainlong
        19
    mainlong  
    OP
       2019-09-09 23:18:44 +08:00
    @shenfu1991
    刚刚把浏览器折腾好了
    sh*so*qt5+浏览器插件 omega 配 pac 规则,浏览器方案完美。

    终端还在折腾测试。
    tslling
        20
    tslling  
       2019-09-10 00:17:24 +08:00 via Android
    @mainlong 这个其实也就是反映到配置文件里的一个设置,直接改 /etc/environment 这个配置文件是一样的。参考这个
    https://askubuntu.com/questions/1053854/how-to-set-system-wide-proxy-address-in-ubuntu-18-04-lts-server/1053936
    shenfu1991
        21
    shenfu1991  
       2019-09-10 11:16:39 +08:00
    @tslling

    ```
    http_proxy="http://userName:password@proxy:port"
    https_proxy="http://userName:password@proxy:port"
    ftp_proxy="http://userName:password@proxy:port"

    ```
    这种方式貌似全部走的都是代理,连国内的网站也会走代理,可以

    ```
    curl "http://pv.sohu.com/cityjson?ie=utf-8"

    ```
    看看返回的 ip 是国内的,还是代理的。
    tslling
        22
    tslling  
       2019-09-10 22:45:41 +08:00
    @shenfu1991 哦我说的就是把所有流量交给代理客户端,然后让客户端去决定是否走代理翻墙(当然这样做的前提是代理客户端要具备分流的能力)。楼主回复的我的 14 楼,然后我又回复的楼主。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   1713 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 37ms · UTC 16:42 · PVG 00:42 · LAX 09:42 · JFK 12:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.