linux 怎么对运行的程序访问的网址进行重新定向 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Distributions
Ubuntu
Fedora
CentOS
中文资源站
网易开源镜像站
617450941
V2EX    Linux

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

  •  1
     
  •   617450941 2015-11-30 14:21:06 +08:00 3642 次点击
    这是一个创建于 3610 天前的主题,其中的信息可能已经有所发展或是发生改变。
    linux 怎么对运行的程序访问的网址进行重新定向 比如程序访问 www.baidu.com 就跳转到 www.qq.com
    18 条回复    2015-12-05 00:37:51 +08:00
    xrxsh
        1
    xrxsh  
       2015-11-30 14:22:36 +08:00
    这个确定不是用 JS 写?
    fising
        2
    fising  
       2015-11-30 14:24:22 +08:00
    从域名解析上解决
    Librazy
        3
    Librazy  
       2015-11-30 14:31:53 +08:00 via Android
    写一个代理,检测传出报文,如果请求了该网址就 302 跳转
    ncisoft
        4
    ncisoft  
       2015-11-30 19:14:40 +08:00 via Android
    Apache rewrite
    GNiux
        5
    GNiux  
       2015-12-01 01:39:14 +08:00 via iPhone
    Hello1995
        6
    Hello1995  
       2015-12-01 09:59:28 +08:00 via Android
    楼主的意思是本地实现吧,修改 /etc/hosts 文件,加一行:
    ```
    123.123.123.123 example.com
    ```
    A 网站为 example.com
    B 网站 IP 地址为 123.123.123.123 。
    访问 A 网站即可跳转到 B 网站…
    latyas
        7
    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
        8
    abscon  
       2015-12-01 11:59:55 +08:00 via iPhone
    linux 怎样煮咖啡
    KyleMeow
        9
    KyleMeow  
       2015-12-02 19:18:03 +08:00
    @Hello1995 不一定。同一个 IP 上可以搭建多个网站的。还是用自己的服务器 301 一下最可靠。
    Hello1995
        10
    Hello1995  
       2015-12-02 19:55:33 +08:00 via Android
    @KyleMeow 我也知道可能多站同 IP 。但楼主并没有表达清楚,我基于楼主没法控制服务器的假设做出回答。我自己实现的话肯定是 301 / 302 ,而且我现在也正是这么实现的。
    617450941
        11
    617450941  
    OP
       2015-12-04 23:09:28 +08:00
    就是对运行的程序访问的网址 url 进行劫持跳转
    617450941
        12
    617450941  
    OP
       2015-12-04 23:21:48 +08:00
    @latyas 对是网址重定向
    617450941
        13
    617450941  
    OP
       2015-12-05 00:04:47 +08:00 via Android
    @Hello1995 要是一个 ip 多站点的 修改 host 就不行了呀,要能跳转到具体 url 网址的
    Hello1995
        14
    Hello1995  
       2015-12-05 00:11:22 +08:00 via Android
    @617450941 如果你能控制到域名,能控制到服务器, 301 自然是最好的选择。我在 #10 说了,我原本以为你是指本地,所以我才说用修改 hosts 的方法。
    617450941
        15
    617450941  
    OP
       2015-12-05 00:16:15 +08:00 via Android
    @Hello1995 301 具体是怎么操作 能说说吗 谢谢
    617450941
        16
    617450941  
    OP
       2015-12-05 00:18:08 +08:00 via Android
    @Hello1995 你说的这个 301 跳转貌似是 web 端的网页跳转 我指的是对本地运行的程序所访问的网页域名进行跳转
    Hello1995
        17
    Hello1995  
       2015-12-05 00:33:14 +08:00 via Android
    你先说说你想实现什么吧,你最初说的和 #11 说的情况不一样,我没理解你想表达哪种情况。如果是你自己本地的机器想在访问 baidu.com 的时候跳转到 qq.com ,那就只需要修改你本地的 hosts 文件。如果你是想让你本局域网内的机器访问 baidu 时跳转到 qq ,你可以在出口的路由器修改 hosts 。想要更大范围的影响就只能取得 baidu.com 域名的控制权修改 DNS 设置,或者直接大面积 DNS 污染了。如果仅仅只是你自己的网站为 example-a.com ,访问时跳转到网站 example-b.com ,方法也很多,比如说 Apache Rewrite …具体教程搜就有了。
    Hello1995
        18
    Hello1995  
       2015-12-05 00:37:51 +08:00 via Android
    16 # 。我临时想到的方法就是在本地搭建 Apache ,顺便把本地程序访问的域名 baidu.com 指向本地,然后本地 301 跳转到某个特定页面。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2746 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 09:09 PVG 17:09 LAX 02:09 JFK 05:09
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86