Distributions
› Ubuntu
› Fedora
› CentOS
中文资源站
› 网易开源镜像站
617450941
V2EX  ›  Linux

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

  •  1
     
  •   617450941 · Nov 30, 2015 · 4357 views
    This topic created in 3993 days ago, the information mentioned may be changed or developed.
    linux 怎么对运行的程序访问的网址进行重新定向 比如程序访问 www.baidu.com 就跳转到 www.qq.com
    18 replies  •  2015-12-05 00:37:51 +08:00
    xrxsh
    xrxsh
    Nov 30, 2015
    1
    这个确定不是用 JS 写?
    fising
    fising
    Nov 30, 2015
    2
    从域名解析上解决
    Librazy
    Librazy
    Nov 30, 2015 via Android
    3
    写一个代理,检测传出报文,如果请求了该网址就 302 跳转
    ncisoft
    ncisoft
    Nov 30, 2015 via Android
    4
    Apache rewrite
    Hello1995
    Hello1995
    Dec 1, 2015 via Android
    6
    楼主的意思是本地实现吧,修改 /etc/hosts 文件,加一行:
    ```
    123.123.123.123 example.com
    ```
    A 网站为 example.com
    B 网站 IP 地址为 123.123.123.123 。
    访问 A 网站即可跳转到 B 网站…
    latyas
    latyas
    Dec 1, 2015
    7
    网址重定向?假设你说的意思是 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
    abscon
    Dec 1, 2015 via iPhone
    8
    linux 怎样煮咖啡
    KyleMeow
    KyleMeow
    Dec 2, 2015
    9
    @Hello1995 不一定。同一个 IP 上可以搭建多个网站的。还是用自己的服务器 301 一下最可靠。
    Hello1995
    Hello1995
    Dec 2, 2015 via Android
    10
    @KyleMeow 我也知道可能多站同 IP 。但楼主并没有表达清楚,我基于楼主没法控制服务器的假设做出回答。我自己实现的话肯定是 301 / 302 ,而且我现在也正是这么实现的。
    617450941
    617450941
    OP
    Dec 4, 2015
    11
    就是对运行的程序访问的网址 url 进行劫持跳转
    617450941
    617450941
    OP
    Dec 4, 2015
    12
    @latyas 对是网址重定向
    617450941
    617450941
    OP
    Dec 5, 2015 via Android
    13
    @Hello1995 要是一个 ip 多站点的 修改 host 就不行了呀,要能跳转到具体 url 网址的
    Hello1995
    Hello1995
    Dec 5, 2015 via Android
    14
    @617450941 如果你能控制到域名,能控制到服务器, 301 自然是最好的选择。我在 #10 说了,我原本以为你是指本地,所以我才说用修改 hosts 的方法。
    617450941
    617450941
    OP
    Dec 5, 2015 via Android
    15
    @Hello1995 301 具体是怎么操作 能说说吗 谢谢
    617450941
    617450941
    OP
    Dec 5, 2015 via Android
    16
    @Hello1995 你说的这个 301 跳转貌似是 web 端的网页跳转 我指的是对本地运行的程序所访问的网页域名进行跳转
    Hello1995
    Hello1995
    Dec 5, 2015 via Android
    17
    你先说说你想实现什么吧,你最初说的和 #11 说的情况不一样,我没理解你想表达哪种情况。如果是你自己本地的机器想在访问 baidu.com 的时候跳转到 qq.com ,那就只需要修改你本地的 hosts 文件。如果你是想让你本局域网内的机器访问 baidu 时跳转到 qq ,你可以在出口的路由器修改 hosts 。想要更大范围的影响就只能取得 baidu.com 域名的控制权修改 DNS 设置,或者直接大面积 DNS 污染了。如果仅仅只是你自己的网站为 example-a.com ,访问时跳转到网站 example-b.com ,方法也很多,比如说 Apache Rewrite …具体教程搜就有了。
    Hello1995
    Hello1995
    Dec 5, 2015 via Android
    18
    16 # 。我临时想到的方法就是在本地搭建 Apache ,顺便把本地程序访问的域名 baidu.com 指向本地,然后本地 301 跳转到某个特定页面。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   1370 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 39ms · UTC 19:45 · PVG 03:45 · LAX 11:45 · JFK 14:45
    ♥ Do have faith in what you're doing.