linux 怎么对运行的程序访问的网址进行重新定向

2015-11-30 14:21:06 +08:00
 617450941
linux 怎么对运行的程序访问的网址进行重新定向 比如程序访问 www.baidu.com 就跳转到 www.qq.com
3090 次点击
所在节点    Linux
18 条回复
xrxsh
2015-11-30 14:22:36 +08:00
这个确定不是用 JS 写?
fising
2015-11-30 14:24:22 +08:00
从域名解析上解决
Librazy
2015-11-30 14:31:53 +08:00
写一个代理,检测传出报文,如果请求了该网址就 302 跳转
ncisoft
2015-11-30 19:14:40 +08:00
Apache rewrite
GNiux
2015-12-01 01:39:14 +08:00
Hello1995
2015-12-01 09:59:28 +08:00
楼主的意思是本地实现吧,修改 /etc/hosts 文件,加一行:
```
123.123.123.123 example.com
```
A 网站为 example.com
B 网站 IP 地址为 123.123.123.123 。
访问 A 网站即可跳转到 B 网站…
latyas
2015-12-01 11:37:36 +08:00
网址重定向?假设你说的意思是 HTTP 请求匹配到制定的 HOST ,在网络层重定向流量

1. iptables
iptables 有串匹配的,但是效率应该不好,哪怕用到各种高大上的看毛片算法啥的

```shell
iptables -t nat -A OUTPUT -p tcp --dport 80 -m string --string "www.baidu.com" --algo kmp -j DNAT --to `host -t a www.qq.com | awk '{print $4}' | egrep ^[1-9]`:80
```
不保证正确 23333333

**如果说的是 HTTP Redirect**

2. nginx 反向代理
就是在 nginx 上判断请求的 HOST ,用 ipbtales 把出口端口 80 流量重定向到 nginx 上,由 nginx 做反向代理
abscon
2015-12-01 11:59:55 +08:00
linux 怎样煮咖啡
KyleMeow
2015-12-02 19:18:03 +08:00
@Hello1995 不一定。同一个 IP 上可以搭建多个网站的。还是用自己的服务器 301 一下最可靠。
Hello1995
2015-12-02 19:55:33 +08:00
@KyleMeow 我也知道可能多站同 IP 。但楼主并没有表达清楚,我基于楼主没法控制服务器的假设做出回答。我自己实现的话肯定是 301 / 302 ,而且我现在也正是这么实现的。
617450941
2015-12-04 23:09:28 +08:00
就是对运行的程序访问的网址 url 进行劫持跳转
617450941
2015-12-04 23:21:48 +08:00
@latyas 对是网址重定向
617450941
2015-12-05 00:04:47 +08:00
@Hello1995 要是一个 ip 多站点的 修改 host 就不行了呀,要能跳转到具体 url 网址的
Hello1995
2015-12-05 00:11:22 +08:00
@617450941 如果你能控制到域名,能控制到服务器, 301 自然是最好的选择。我在 #10 说了,我原本以为你是指本地,所以我才说用修改 hosts 的方法。
617450941
2015-12-05 00:16:15 +08:00
@Hello1995 301 具体是怎么操作 能说说吗 谢谢
617450941
2015-12-05 00:18:08 +08:00
@Hello1995 你说的这个 301 跳转貌似是 web 端的网页跳转 我指的是对本地运行的程序所访问的网页域名进行跳转
Hello1995
2015-12-05 00:33:14 +08:00
你先说说你想实现什么吧,你最初说的和 #11 说的情况不一样,我没理解你想表达哪种情况。如果是你自己本地的机器想在访问 baidu.com 的时候跳转到 qq.com ,那就只需要修改你本地的 hosts 文件。如果你是想让你本局域网内的机器访问 baidu 时跳转到 qq ,你可以在出口的路由器修改 hosts 。想要更大范围的影响就只能取得 baidu.com 域名的控制权修改 DNS 设置,或者直接大面积 DNS 污染了。如果仅仅只是你自己的网站为 example-a.com ,访问时跳转到网站 example-b.com ,方法也很多,比如说 Apache Rewrite …具体教程搜就有了。
Hello1995
2015-12-05 00:37:51 +08:00
16 # 。我临时想到的方法就是在本地搭建 Apache ,顺便把本地程序访问的域名 baidu.com 指向本地,然后本地 301 跳转到某个特定页面。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/240002

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX