chenzhenguo0620
V2EX  ›  程序员

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

By chenzhenguo0620 at 2020 年 3 月 25 日 · 4728 次点击

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

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

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

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