Linux 单网卡多 ip 如何指定非默认 ip 的路由? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
hadoop
V2EX    Linux

Linux 单网卡多 ip 如何指定非默认 ip 的路由?

  • /li>  
  •   hadoop 2017-01-30 01:58:21 +08:00 4948 次点击
    这是一个创建于 3176 天前的主题,其中的信息可能已经有所发展或是发生改变。
    具体来说,一个 linux server ,单网卡,有 2 个 ip , A 和 B , A 是主 ip,这俩同一个网段,ssh都能连得上 。

    现在比如搭一个 socks5 代理,希望负载均衡分别能从两个 ip 出去(请求从哪个 ip 来,就从哪个 ip 出去),这个请问该怎么实现?
    26 条回复    2017-02-09 23:05:41 +08:00
    ayanamist
        1
    ayanamist  
       2017-01-30 02:11:28 +08:00 via Android
    默认就是这样的,哪个网卡了的流量就会从哪个网卡回去,否则用户收不到回包的。
    ryd994
        2
    ryd994  
       2017-01-30 02:25:16 +08:00 via Android
    1.物理网卡和 interface 不一定对应,可以有多个 interface
    2. 你的需求可以通过开两个 socks 服务器,并各自 bind 不同 IP 处理。而且 socks 服务器是 7 层,并不在乎哪个 IP 在哪个网卡,只要 IP 对就行。
    hadoop
        3
    hadoop  
    OP
       2017-01-30 02:26:31 +08:00 via Android
    @ayanamist 我问题可能没表述清楚。再具体点, socks 程序监听在 A 和 B 的 1080 端口,现在 client 端有个请求 curl http://ip.ipinfo.io (获取 ip ),从 B : 1080 进来,通过代理去访问。但是最后返回给 client 的 ip 不是 B 自己的,是 A 的
    xfspace
        4
    xfspace  
       2017-01-30 03:45:02 +08:00 via iPad
    你的程序有问题?
    lslqtz
        6
    lslqtz  
       2017-01-30 07:10:53 +08:00 via iPhone
    @hadoop 从 B:1080 进来 通过 A 去访问 然后通过 B 返回...
    我只想到 HTTP 代理可能可以实现。
    jasontse
        7
    jasontse  
       2017-01-30 07:42:07 +08:00 via Android
    这事和哪个 IP 进来的没啥关系,你代理发出 tcp 请求 bind 是哪个就是哪个。
    zaishanfeng
        8
    zaishanfeng  
       2017-01-30 09:15:42 +08:00 via Android
    开 ss 时就绑定 ip 。 我指的是绑定网卡。方法自行 g
    iRiven
        9
    iRiven  
       2017-01-30 09:51:06 +08:00 via Android
    负载均衡,在外面就要决定要用 A 或 B 吧,再来一个 C ,帮你做这个决定
    gamexg
        10
    gamexg  
       2017-01-30 10:26:28 +08:00 via Android
    这个功能需要 socks5 代理支持,如果不支持的话需要开两个 socks5 ,自己配置策略路由来做。
    ic3z
        11
    ic3z  
       2017-01-30 11:24:47 +08:00 via Android
    加路由
    hadoop
        12
    hadoop  
    OP
       2017-01-30 11:37:23 +08:00
    @ic3z 能具体点不?
    snnn
        13
    snnn  
       2017-01-30 12:04:23 +08:00 via Android
    你为什么需要多 IP ?
    zwzmzd
        14
    zwzmzd  
       2017-01-30 12:15:34 +08:00 via Android
    单机多接口建议看看这两篇文章
    http://www.wlug.org.nz/SourceBasedRouting
    http://lartc.org/howto/lartc.rpdb.multiple-links.html

    我之前的应用环境是多拨负载均衡,一个网卡上建立了多个 pppoe 链接对外服务
    ic3z
        15
    ic3z  
       2017-01-30 13:53:08 +08:00 via Android
    @hadoop 如果目的地址不固定的话当我没说。。
    hadoop
        16
    hadoop  
    OP
       2017-01-30 13:54:26 +08:00 via Android
    @snnn 爬虫代理啊
    hadoop
        17
    hadoop  
    OP
       2017-01-30 13:55:02 +08:00 via Android
    @zwzmzd 多谢,我看下
    hadoop
        18
    hadoop  
    OP
       2017-01-30 15:22:41 +08:00
    @lslqtz 不是,我希望的是从 B:1080 进来的请求,通过 B 去访问,但是现在实验下来还是根据 A 去访问了
    hadoop
        19
    hadoop  
    OP
       2017-01-30 15:23:11 +08:00
    @zaishanfeng 单网卡,多 ip ,咋搞?
    Orzzzz
        20
    Orzzzz  
       2017-01-30 15:27:32 +08:00
    一个网卡只能有一个默认路由,否则会乱套的,这是规定,也是没办法的事情。
    hadoop
        21
    hadoop  
    OP
       2017-01-30 21:38:25 +08:00
    @gamexg 是的,后来找了 danted 这个 socks 软件,软件支持后面就好弄多了
    hadoop
        22
    hadoop  
    OP
       2017-01-30 21:40:15 +08:00
    @shiji 我也想到过用 ss 来做,但是我只需要一个 socks5 代理,后来找了 dante 这个 socks5 软件来实现了从哪个监听 ip 来,就从哪个 ip 出去的功能
    msg7086
        23
    msg7086  
       2017-01-31 01:44:07 +08:00
    #18 @hadoop 入口 IP 和出口 IP 是两回事,完全无关。
    假如你装了 10 块网卡,第 8 块网卡上连进来的请求,你程序做代理的时候照样会从默认 IP 出去。
    要改变出口 IP ,需要在代理上绑定出口 IP 。
    nomaka
        24
    nomaka  
       2017-01-31 12:14:39 +08:00
    这个路由好像没法做 你要先指两条默认路由 然后 iptables 做 rule
    kuretru
        25
    kuretru  
       2017-02-06 22:27:14 +08:00
    当时看到这个问题的时候,就想到分别使用两个用户 userA 、 userB 运行 2 个 socks5 进程,最后根据用户指定源 IP 地址这个解决方案,但是不知如何实现,便没有回复。今天偶然看到 iptables 即可支持,-m owner --uid-owner userA ,即可捕捉到指定用户的流量,然后根据需要从 A 地址或 B 地址转发出去。
    dawncold
        26
    dawncold  
       2017-02-09 23:05:41 +08:00
    连接建立的时候(src_host, src_port, dst_host, dst_port)就已经是确定的了,如果在 A 上建立了连接,你却用 B 返回,这根本就无法返回呢, B 在那个时候都没有根客户端建立起来连接。

    你说的负载均衡到底指的是什么,希望有什么效果?
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     6028 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 33ms UTC 06:14 PVG 14:14 LAX 23:14 JFK 02:14
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86