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

一台服务器实现如何实现 ip 轮询机制

  •  1
     
  •   chenzhenguo0620 · Mar 25, 2020 · 4832 views
    This topic created in 2415 days ago, the information mentioned may be changed or developed.

    请问各位大牛一个问题, 需求是这样的: 现在是有一台代理程序,会对 web 资源进行代理,代理程序如果发起的请求过多,该 ip 会被封掉,

    请求网站 ip 为学校内网 ip 。请问如何实现修改本机的请求 ip,来防止代理 ip 被封 (跟爬虫的 ip 池不太一样,因为爬虫的 ip 池是 通过代理服务器再进行代理的,而且是用的外部的代理服务器,现在这个请求的 ip 需要是内网的 ip,难道只能在内网搭建多台反向代理吗?)

    有没有办法不用代理服务器的方式,能够实现 ip 的更换?

    24 replies  •  2020-04-03 20:00:05 +08:00
    chenzhenguo0620
    chenzhenguo0620
    OP
    Mar 25, 2020
    1
    有 DHCP 的技术能否实现 ip 的无感切换 或者使用虚拟 ip
    Tianao
    Tianao
    Mar 25, 2020
    2
    不知道你内网 IP 是怎么来的,如果是无差别 DHCP,随机 MAC 地址就行了,但你需要保证 DHCP 是无差别的而不是基于 AAA (比如 PPP )或者 MAC 白名单的。
    chenzhenguo0620
    chenzhenguo0620
    OP
    Mar 25, 2020
    3
    @Tianao 内网 IP 可以设置多个固定的 ip 地址 ,dhcp 试过可以更换 ip,但是如果不更换 mac 地址的话 就还是只给同一个 ip
    RickyC
    RickyC
    Mar 25, 2020
    4
    实在没有听懂你的问题.
    哪个 ip 被封?
    什么是对 web 资源进行代理?
    你有多少 ip 资源?
    你是需要很多的 ip 资源吗?
    mnssbe
    mnssbe
    Mar 25, 2020
    5
    网站, 代理服务哪一个是你能控制的。你好像什么都控制不了
    klh
    klh
    Mar 25, 2020
    6
    听下来是不是就是要改你自己终端的 IP 就行啦?
    black11black
    black11black
    Mar 25, 2020
    7
    IP 确实不是你能控制的,要不然假请求会比现在猖獗一万倍。根据你的回帖目前最可能的方案就是自动重启网卡吧,linux 修改 mac 地址还是很简单的,windows 不会。不过网卡重启的间隔你还是会高频请求冲撞对方防火墙,基本上该挂还是挂。总之一台机是很难搞的
    jugelizi
    jugelizi
    Mar 25, 2020 via iPhone
    8
    ...说了一大堆 就是自动重新获取你的内网 ip 而已
    一个 bat 解决的事
    yuandong
    yuandong
    Mar 25, 2020
    9
    搜索 弹性 ip
    iX8NEGGn
    iX8NEGGn
    Mar 26, 2020 via iPhone
    10
    你就是想换你内网 ip,windows 可以在虚拟机内装个 openwrt 软路由,然后虚拟个几十张网卡,再用软路由自带的负载均衡,但是这样获得的 ip 还是少,只能写个脚本,被流控后自动换网卡 mac 重新获取 ip
    chenzhenguo0620
    chenzhenguo0620
    OP
    Mar 26, 2020
    11
    @RickyC 比如在学校,用学校的内网 ip 是可以访问学校内部的知网,万方这类电子资源, 但是如果下载次数过多 ip 就会被封掉或者提升验证码,如果能修改请求知网的内网 ip 就可以实现不被封 ip
    chenzhenguo0620
    chenzhenguo0620
    OP
    Mar 26, 2020
    12
    chenzhenguo0620
    chenzhenguo0620
    OP
    Mar 26, 2020
    14
    @hiplon
    @jugelizi
    @iX8NEGGn 确实是要修改内网 ip,有没有能用程序来修改,而且实现不用停止 代理服务,就能自动切换内网 ip ,类似路由表
    xyjincan
    xyjincan
    Mar 26, 2020
    15
    docker 上一堆实例,都设置好桥接静态 ip,配置上 web 代理服务,你的代理服务端,轮询选择你的 docker 代理池,你要干嘛呀
    chenzhenguo0620
    chenzhenguo0620
    OP
    Mar 26, 2020
    16
    通过命令修改 ip 的话就需要重启网卡,重启网卡的话就会停止服务了,
    xyjincan
    xyjincan
    Mar 26, 2020
    17
    双网卡,服务网卡本地 ip 不变,另一个网卡按需使用脚本更换 ip&mac
    chenzhenguo0620
    chenzhenguo0620
    OP
    Mar 26, 2020
    18
    @xyjincan 您说的办法也可行,也可以当负载均衡的效果,但是 ip 是固定的,能否实现 在一个网段里自动更换 ip 。
    xyjincan
    xyjincan
    Mar 26, 2020
    19
    好像你自己搭建一个 DHCP 服务器可以实现,
    chenzhenguo0620
    chenzhenguo0620
    OP
    Mar 26, 2020
    20
    @xyjincan 另一个网卡使用脚本更换 ip&mac 是否 需要重启网卡生效,就会造成 服务程序中断了。 DHCP 服务器可以实现 当时测试了可以更换,mac 地址相同,所以每次分到的都是相同的 ip,但是更换 mac 地址之后 好像也需要重启网卡, 这两个方案我需要再验证一下,感想大佬
    iX8NEGGn
    iX8NEGGn
    Mar 26, 2020 via iPhone
    21
    @chenzhenguo0620 软路由里面负载均衡是不需重启网卡的,你虚拟多个网卡,即使重启一部分网卡它会自动从剩余的 ip 继续负载均衡,重启网卡后新的 ip 又继续能加入到负载均衡里,但是你要明白一个会话一旦建立后,用的就都是那个 ip 了,如果需要登陆的话你又得重新登陆
    chenzhenguo0620
    chenzhenguo0620
    OP
    Mar 26, 2020
    22
    @iX8NEGGn 厉害了 大佬,这个好像能够实现我的需求,不过我有个问题是 我如果需要在 centos 上面安装 openwrt 安装 我看这个一般是安装在 其他路由固件上的 , 将 openwrt 和其他程序放在一台服务器是否可行呢?
    iX8NEGGn
    iX8NEGGn
    Mar 26, 2020 via iPhone
    23
    @chenzhenguo0620 不管在 windows 还是 linux 下,只要有虚拟机都可以,直接拿一台真机也行,虚拟机的话,你的 centos 不直接通过你的物理网卡上网,而是通过虚拟机网卡,比如 windows 下的 vm8 或 vm1,但是你要有路由的知识,才能配置好
    chenzhenguo0620
    chenzhenguo0620
    OP
    Apr 3, 2020 via Android
    24
    @iX8NEGGn 大佬,请问怎么我怎么判断这个虚拟网卡没有会话,或者会话结束。能不能在不中断会话的情况下给虚拟网卡换 ip
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2845 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 49ms · UTC 13:05 · PVG 21:05 · LAX 05:05 · JFK 08:05
    ♥ Do have faith in what you're doing.