• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ethusdt
0.01D
V2EX  ›  程序员

同一设备同时登陆多个账号,如何使其 ip 地址不同(防关联)?

  •  
  •   ethusdt · Mar 14, 2020 · 6582 views
    This topic created in 2295 days ago, the information mentioned may be changed or developed.

    标题可能有点绕,场景如下:Amazon 限制用户(卖家)注册多个账号,会根据 ip 等信息来区分用户。

    所以如果有几个账号,想要实现它们同时在线不被关联,应该如何实现?

    在线指的是,在浏览器登陆亚马逊网站。

    看到有一种叫「超级浏览器」的东西,做外贸的公司一般会花钱去购买。所以它的原理是什么?

    如果让我实现:

    假如有 5 个账号需要同时在线,需要至少 4 个稳定的其他网络做代理,并且同一台设备需要开启 4 个 server 来连接代理,浏览器还要对每个页面设置不同 local server 代理。SwitchyOmega 好像不能自动为每个 tab 设置不同代理,只有根据规则选用不同代理的功能,所以需要开启 5 个不同浏览器来代理。这样实现起来太麻烦了,所以有什么更好的实现方法吗?

    Supplement 1  ·  Mar 15, 2020
    总结下需要实现的场景:
    如何给某应用(浏览器)的多个线程设置不同代理。
    25 replies    2020-03-16 12:15:15 +08:00
    PbCopy111
        1
    PbCopy111  
       Mar 15, 2020
    5 张手机卡。
    rexxtem07
        2
    rexxtem07  
       Mar 15, 2020 via iPhone
    5 台 windows 云虚拟机
    vincentxue
        3
    vincentxue  
       Mar 15, 2020
    开几个 Tor 浏览器选不同的 region ?
    NeinChn
        4
    NeinChn  
       Mar 15, 2020   ❤️ 1
    多代理还是比较好做的吧,对着现有的 proxy 插件改一下就好了,难度应该不大
    不过同网站多 Cookie 支持这个就没那么简单了,得从浏览器层面去 hack
    我搜了一下,类似的产品都是直接从 Chromium 改的....例如 Ghost Browser
    https://sspai.com/post/40750
    janxin
        5
    janxin  
       Mar 15, 2020   ❤️ 1
    Chrome/Firefox 就有这种功能

    Chrome 有定义多 user data 功能,使用参数--user-data-dir 即可,创建多个指向不同位置的 user-data 的快捷方式

    Firefox 有官方的 Firefox Multi-Account Containers,不过代理分离稍微麻烦点而已
    ethusdt
        6
    ethusdt  
    OP
       Mar 15, 2020
    @janxin #5

    可以解决多个浏览器的问题,但 ip 问题还没解决
    janxin
        7
    janxin  
       Mar 15, 2020
    @janxin 不同 user data 数据不通,都装上插件设置不同代理就可以了
    ethusdt
        8
    ethusdt  
    OP
       Mar 15, 2020
    @NeinChn #4 看了下,GhostBrowser 基本就是应付此场景而生的,谢谢。换了个关键词,我也搜到了。

    ethusdt
        9
    ethusdt  
    OP
       Mar 15, 2020
    @janxin #7 哦哦,就像 4L 中提到的 GhostBrowser 一样,不同 session 的 tab 使用不同的 container,所以也支持单独为 session 设置不同代理吗?
    ethusdt
        10
    ethusdt  
    OP
       Mar 15, 2020
    @janxin 这种 --user-data-dir 形式是相当于另开启一个浏览器进程,所以针对进程设置不同代理是没有问题的。这也解决了我在附言中的问题。
    rekulas
        11
    rekulas  
       Mar 15, 2020
    写过扩展插件,user data 的方式是可行的,只是占用资源多点
    如果要实现同浏览器不同标签不同代理,按目前的 api 支持比较难,更可行的方式是中间人作为一级代理做流量分发、结合扩展可以实现,但是也需要开发下貌似没有现成代码
    Myprincess
        12
    Myprincess  
       Mar 15, 2020
    看一下这个文章 :
    https://mp.weixin.qq.com/s/tjdcraEgiGbnDs2ptrhyNA
    AMAZON 查关联
    imn1
        13
    imn1  
       Mar 15, 2020
    为何不考虑多个浏览器,而是多个 tab ?
    ethusdt
        14
    ethusdt  
    OP
       Mar 15, 2020
    @imn1 #13 嗯,你说的有道理,浏览器对应的是 process,tab 对应的是 thread. 只是在探讨有没有可能给同一 process 下的 threads 分配不同代理。


    @rekulas #11 比较难的是需要提取关键信息来区分不同账号来自动分配代理。但是中间人一级代理只能单独转发吧?就拿 mitmproxy 来说,如何将流量转发给其他的代理?
    ik
        15
    ik  
       Mar 15, 2020 via iPhone
    补充 #5 每个浏览器都安装 switchyproxy,指定不同浏览器使用不同代理的问题
    rekulas
        16
    rekulas  
       Mar 15, 2020
    @FaiChou 例如,用插件给每个 tab 的流量附加一个 tab hash 的 header,中间人通过 header 判断转发不同代理就行了,实际上每一条连接都是可以单独设置代理的,只是 pac 的 api 只能判断 url 不能判断 header,不然都不需要中间人了
    rekulas
        17
    rekulas  
       Mar 15, 2020
    如果只通过 url 每个标签 url 后面加特征码判断 不用中间人理论上也是可以的 就是看着感觉有些奇怪 因为多了点东西
    ZXCDFGTYU
        18
    ZXCDFGTYU  
       Mar 15, 2020
    网上一大堆卖 IP 代理的,用这个不就行了么
    ethusdt
        19
    ethusdt  
    OP
       Mar 15, 2020
    @ZXCDFGTYU #18 我只是想探讨下技术方案。


    @rekulas #16 谢谢。可以再深入说下吗?「中间人通过 header 判断转发不同代理」这里的转发是怎么实现?用 [AnyProxy]( https://github.com/alibaba/anyproxy) 写个粗糙代码:

    ```javascript
    async function* beforeSendRequest({ url, requestData }) {
    switch (requestData.headers['tabHash']) {
    case TAB1: {
    const response = await reverseTo(SERVER1, url, requestData)
    return { response }
    }
    case TAB2: {
    const response = await reverseTo(SERVER2, url, requestData)
    return { response }
    }
    ...
    }
    }
    ```

    是这个意思吗?还有其他方法吗?
    rekulas
        20
    rekulas  
       Mar 15, 2020   ❤️ 1
    @FaiChou 是这个意思,这方面暂时也想不到什么更好的办法
    其实我觉得 url 的模式更好点,只需要劫持 url 请求就可以实现分流了
    例如 tab1 的所有请求 url 都加上 trackcode=a3ef4de
    然后 pac 就直接根据 code 分流很简单就实现了

    不过也有缺点,可能某些严格匹配的地址会受影响(不过这种网址应该很少可以测测)
    yc8332
        21
    yc8332  
       Mar 15, 2020
    多开账号简单,360chrome 隐身模式就行了。。。关键是同一个软件设置不同的代理,基本没有办法,要么自己开发一个代理软件的插件。。或者比较简单的是开几个虚拟机,里面再去用浏览器访问,设置不同的代理
    rb6221
        22
    rb6221  
       Mar 15, 2020
    其实虚拟机就可破
    因为你要知道这世界上有一种东西叫做小区宽带,网站开发者是必须考虑这个问题的,所以没必要做到不同 ip
    Jirajine
        23
    Jirajine  
       Mar 15, 2020 via Android
    要求很严格的情况下你同一台设备都会被指纹关联,只能物理隔离。
    460881773
        24
    460881773  
       Mar 16, 2020
    我这边的朋友用的是 windows 的 vps 来搞这个 多个账号就多台机器。ip 肯定是 固定唯一的,
    FS1P7dJz
        25
    FS1P7dJz  
       Mar 16, 2020
    代理并不能保证你就一定不会被嗅探到真实 IP 地址
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2921 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 56ms · UTC 09:43 · PVG 17:43 · LAX 02:43 · JFK 05:43
    ♥ Do have faith in what you're doing.