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

ubuntu 怎么从终端用 clash 上网?

  •  
  •   dogechai · 2023-11-21 11:59:26 +08:00 · 3979 次点击
    这是一个创建于 397 天前的主题,其中的信息可能已经有所发展或是发生改变。
    之前在 macos 虽然下载了 clash ,在终端不能上网。因此添加了:
    ‘’‘
    function proxy_on() {
    export http_proxy=http://127.0.0.1:7890
    export https_proxy=$http_proxy
    export ALL_PROXY=socks5://127.0.0.1:7891
    echo -e "PROXY ON..."
    }

    function proxy_off(){
    unset http_proxy https_proxy ALL_PROXY
    echo -e "PROXY OFF..."
    ’‘’

    ubuntu 是不是哪怕装了 clash ,远程想在终端上上网,也要设置一些东西呢?
    23 条回复    2023-11-23 09:32:59 +08:00
    IamUNICODE
        1
    IamUNICODE  
       2023-11-21 12:32:26 +08:00
    环境变量配置一下啊
    allenby
        2
    allenby  
       2023-11-21 12:34:56 +08:00 via Android
    用 tun 把
    Donahue
        3
    Donahue  
       2023-11-21 12:35:23 +08:00   ❤️ 1
    有条件的话强烈推荐旁路由, 折腾一个星期基本就能完全掌握了, 然后局域网内所有设备直接科学上网的感觉很爽,比每个设备上安装客户端方便很多 推荐 panther x2 / N1 / 我家云 都是 100 元内搞定
    dogechai
        4
    dogechai  
    OP
       2023-11-21 12:37:11 +08:00
    @IamUNICODE #1 我检查状态的时候是这样的:
    root@ms-Precision-3660:/usr/local/bin/clash# sudo systemctl status clash.service
    ● clash.service - Clash Service
    Loaded: loaded (/etc/systemd/system/clash.service; enabled; vendor preset: enabled)
    Active: failed (Result: exit-code) since Tue 2023-11-21 12:35:39 CST; 3s ago
    Process: 834662 ExecStart=/usr/local/bin/clash -d /usr/local/etc/clash (code=exited, status=203/EXEC)
    Main PID: 834662 (code=exited, status=203/EXEC)

    11 月 21 12:35:39 ms-Precision-3660 systemd[1]: Started Clash Service.
    11 月 21 12:35:39 ms-Precision-3660 systemd[834662]: clash.service: Failed to execute command: Permission denied
    11 月 21 12:35:39 ms-Precision-3660 systemd[834662]: clash.service: Failed at step EXEC spawning /usr/local/bin/clash: Permission d>
    11 月 21 12:35:39 ms-Precision-3660 systemd[1]: clash.service: Main process exited, code=exited, status=203/EXEC
    11 月 21 12:35:39 ms-Precision-3660 systemd[1]: clash.service: Failed with result 'exit-code'.
    dogechai
        5
    dogechai  
    OP
       2023-11-21 12:37:31 +08:00
    @Donahue #3 学校电脑,不是很想折腾。
    dogechai
        6
    dogechai  
    OP
       2023-11-21 12:37:35 +08:00
    @allenby #2 55555
    nigerunndayo
        7
    nigerunndayo  
       2023-11-21 13:30:53 +08:00
    1 ,检查是否有可执行权限:
    ll /usr/local/bin/clash

    2 ,如果没有就加权限:
    chmod u+x /usr/local/bin/clash
    dogechai
        8
    dogechai  
    OP
       2023-11-21 14:11:01 +08:00
    @nigerunndayo #7 感谢老哥,按照你的设置仍然不行,我的教程是在这里看的: https://bbs.huaweicloud.com/blogs/405107

    我现在直接跑到电脑主机这里了,然后在图形化界面打开了 clashX ,然后订阅了连接,现在是可以跑了。但是日常我都是远程,就不知道怎么设置才好。
    Catboost
        9
    Catboost  
       2023-11-21 15:51:55 +08:00 via Android   ❤️ 1
    终端里只要设置 HTTP 流量走 clash 的代理端口就行了,比如你的 clash 内核代理端口是 7890 ,
    那么就是
    ```
    export http_proxy=127.0.0.1:7890
    export https_proxy=127.0.0.1:7890
    ```
    或者你觉得在 Linux 环境下使用 clash 内核很麻烦,你的 Ubuntu 可以访问局域网内的其他设备,你可以用其他设备代理,假设你的 mac 笔记本 A 开了 clash ,端口为 7890 、并且开启了 LAN 共享。
    那么终端环境变量设置:
    ```
    export http_proxy=A 的局域网 ip:7890
    export https_proxy=A 的局域网 ip:7890
    ```
    beetlerx
        10
    beetlerx  
       2023-11-21 16:02:57 +08:00
    DICK23
        11
    DICK23  
       2023-11-21 17:28:54 +08:00
    mac 上如果是 clashx,点击图标直接 cmd + c,终端里直接粘贴
    xing2387
        12
    xing2387  
       2023-11-21 17:36:09 +08:00
    看看你的那个 yaml 配置文件里写的是什么端口,有没有 allow lan 的设置。
    看看端口有没起来,用 sudo netstat -tunlp ,看看监听的是什么 ip 。
    xing2387
        13
    xing2387  
       2023-11-21 17:40:04 +08:00
    还有看看是什么模式
    # 规则模式:Rule (规则) / Global (全局代理)/ Direct (全局直连)
    mode: GLOBAL


    但是你用 clashx 能跑的话。。。估计配置没问题。。
    encro
        14
    encro  
       2023-11-21 17:43:11 +08:00
    v2raya
    snowed16h
        15
    snowed16h  
       2023-11-21 23:17:32 +08:00
    我云服务器用这个教程配好的,配置要更新就重新
    weget 一下,
    https://blog.wlzs.cn/linux%E4%BD%BF%E7%94%A8clash/
    dogechai
        16
    dogechai  
    OP
       2023-11-22 17:10:54 +08:00
    @DICK23 #11 我靠,我觉得你这个最方便啊,直接连接就好。但是怎么取消连接呢?
    这样可以随时在终端用的话就连接,不用的话就可以断开。
    dogechai
        17
    dogechai  
    OP
       2023-11-22 18:34:51 +08:00
    @xing2387 #12 我直接用的 cfw ,然后必须在 GUI 的界面运行./cfw 这个应用程序才能用;远程不能选择开启和关闭。ssh 全天开着全局,我发现网络可能会定期断开?我不知道是不是这个问题。
    dogechai
        18
    dogechai  
    OP
       2023-11-22 18:35:31 +08:00
    @Catboost #9 对,我刚刚尝试这个事情了,但是这样的话如果 MAC 关机还能用吗?
    dogechai
        19
    dogechai  
    OP
       2023-11-22 18:39:10 +08:00
    @Catboost #9 @Catboost 每次我想上网直接 export 这个就好,不想上直接关闭这个 export 就好。但是还存在一个问题,用这个方法,我虽然终端可以翻墙,但是我的浏览器没办法翻,这样影响我远程的操作吗?比如我需要用 python 爬虫,request.get 这种情况还可以访问外网吗?

    谢谢老哥!
    Catboost
        20
    Catboost  
       2023-11-22 20:19:00 +08:00
    @dogechai MAC 关机肯定就不能用了,如果想不通过其他机器代理,就还是捣鼓 Clash 内核代理吧;
    爬虫也可以翻,只需要在当前终端里运行爬虫即可,这个环境设置仅仅是针对当前终端的,关掉终端就没了,下次还要重新设置。可以编辑.bashrc 文件把环境变量加进去,这样就对所有终端窗口永久有效了;
    另外你想全局代理的话就在 Ubuntu 的网络设置里设置手动代理,IP 和端口就填你的 MAC 共享的地址端口,这样浏览器也能走代理,Firefox 浏览器也支持浏览器内设置走代理端口,原理是一样的。
    Catboost
        21
    Catboost  
       2023-11-22 20:20:49 +08:00
    @dogechai 如果远程是指 SSH 登录你的 Ubuntu 进行操作的话,局域网内是没有任何影响的。
    dogechai
        22
    dogechai  
    OP
       2023-11-22 23:30:59 +08:00
    @Catboost #21 我是 mac 开着 clash 局域网,然后 ubuntu 连接着 mac 的局域网 ip 。我在 mac 远程通过 ssh 连接 ubuntu ,这个情况下关闭 mac 电脑,ubuntu 也不能连接了对吗?
    DICK23
        23
    DICK23  
       2023-11-23 09:32:59 +08:00
    @dogechai terminal 关了 session 自动就没了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2902 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 14:06 · PVG 22:06 · LAX 06:06 · JFK 09:06
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.