V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
lanwairen123
V2EX  ›  宽带症候群

在河南郑州除了 vpn 还有访问自建 http/https 服务的途径吗,杀疯了

  •  
  •   lanwairen123 · 2023-09-02 16:47:42 +08:00 · 11509 次点击
    这是一个创建于 484 天前的主题,其中的信息可能已经有所发展或是发生改变。

    河南郑州移动,自建的 http/https 服务不管是通过 frp 、nps 等各种映射,还是 nginx 反代,只要是通过域名访问,不管是 http 还是 https ,不管服务器在国内还是国外,不管是标准端口还是非标端口,全部 reset

    换个域名顶不了两天,已经换了 3 、4 个域名了,全部 reset

    通过 itdog http ping ,全国除了福建泉州和河南移动、电信、偶尔联通,其他全部都是正常访问的,关键我在郑州,有访问自建服务的需求

    都是自建的一些私人服务,像是笔记应用、HA 、私人相册、网盘等服务

    现在访问自己的服务只能挂梯子或者 VPN 进内网才能用

    第 1 条附言  ·  2023-09-04 12:48:53 +08:00
    可能我表述不太清楚,是郑州家宽访问自建 http/https 服务被阻断,不是用家宽自建 http/https 服务
    第 2 条附言  ·  2023-09-05 09:50:45 +08:00

    经过@admin13579 的提示,通过服务器和本地丢弃rst包的方式可以恢复本地访问,方法是

    #服务器端和本地端都运行,丢弃RST包
    iptables -I INPUT -p tcp --tcp-flags RST RST -j DROP
    #网关用这个可以丢弃转发的数据包中的RST包,使得网关下的设备都能恢复访问
    iptables -I FORWARD -p tcp -i pppoe-wan --tcp-flags RST RST -j DROP
    #pppoe-wan换成你的出口接口
    

    但是这种无脑丢弃RST包的方式可能会导致不可预料的网络问题

    加密sni没找到nginx下的配置方式,强制tls v1.3会被直接阻断

    121 条回复    2024-08-30 17:04:16 +08:00
    1  2  
    admin13579
        101
    admin13579  
       2023-09-04 15:47:57 +08:00 via Android
    @lanwairen123 如果是路由黑洞这种墙,或者用丢包的方式来进行阻断,那肯定就没用了
    但之前河南阻断大量网站时,是有省内设备只往客户端发送单向 rst 包来阻断连接,这时在客户端上丢弃入站的 rst 包,确实是可以无视阻断继续连接的。
    这个方法对墙无效的原因是,一般被 GFW 墙的 vps 之类的都是直接封 IP ,丢包式阻断,所以忽视 rst 包也没用。而被墙的网站虽然都是只墙域名,但发送 RST 包是双向的,你的客户端忽略了,对方网站服务器也不会为了配合你而忽略 RST ,所以还是会被阻断。
    不过这种特殊情况下,http 服务就你自己一个人用,客户端和服务端控制权都在你手里,而且只是阻断域名,阻断方式仅为 rst 的话,我觉得这种两边都忽略 RST 包的方法或许还可以一试
    lanwairen123
        103
    lanwairen123  
    OP
       2023-09-04 20:15:26 +08:00
    @admin13579 您说的很有道理,我查阅了相关资料,丢掉 rst 包这种做法在刚开始有 reset 墙的时候就有人做过研究,我刚才也试了,确实是可以的,在服务器和本地分别执行 iptables -I INPUT -p tcp --tcp-flags RST RST -j DROP 丢掉 rst 包后就能正常访问了,确实是一个思路,但是这种直接丢弃所有 rst 包的行为会不会导致其他问题,正常的 rst 包也被丢弃了
    lanwairen123
        104
    lanwairen123  
    OP
       2023-09-04 20:16:18 +08:00
    @windrun 这篇文章或类似的说法我也查到过,但是在我这边无效了,可能是墙升级了
    lanwairen123
        105
    lanwairen123  
    OP
       2023-09-04 20:22:09 +08:00
    @admin13579 问了 claude.ai ,它这样说的:
    如果完全丢弃所有 RST 包,可能会带来以下一些不良后果:
    正常连接被终止时无法释放资源,从而造成资源泄漏。TCP 连接的正常终止依赖 RST 报文释放连接。
    无法快速中止无效连接,资源被无效连接占用。对无效的连接请求,服务器会发送 RST 报文快速拒绝连接。
    连接重置功能被破坏。RST 使得 TCP 连接立即重置,丢弃 RST 会导致错误连接状态持续存在。
    防火墙和入侵检测系统功能被影响。许多防火墙和 IDS 依赖 RST 报文判断连接状态。
    网络堵塞加剧。丢弃 RST 使得断开的连接持续占用网络资源,加重网络拥塞。
    某些应用连接功能失效。像 FTP 被动连接需要 RST 报文正确关闭旧连接。
    引发更多安全问题。攻击者可以利用丢弃 RST 来实现一些攻击行为。
    所以,完全丢弃所有 RST 包会对网络功能和安全造成影响。应该根据实际需要,有针对性地处理 RST 包,不能简单地全面丢弃。同时,关键服务也需要有应对措施,避免依赖 RST 的功能被破坏。
    admin13579
        106
    admin13579  
       2023-09-05 00:33:00 +08:00 via Android
    @lanwairen123 抱歉,这个我还不是很清楚。但在我一点模糊的印象中,正常场合下 RST 是用来直接关闭异常高频的 tcp 连接的,结合你问到的答案,大概就是一刀切丢掉所有 RST 包可能会使 tcp 连接不能被迅速关闭导致拥塞,同时使你无力阻止一些潜在的网络攻击。
    如果不放心的话,可以暂时不采用这种比较激进的措施,改用客户端服务端都开启 tcp timestamp 验证的方法,可以精准针对丢弃运营商省内设备发的 RST 包,而不丢弃正常的。
    lanwairen123
        107
    lanwairen123  
    OP
       2023-09-05 07:00:55 +08:00 via Android
    @admin13579 #102 提到的文章说的就是 timestamp ,但在我这并不行,可能已经升级了
    YGBlvcAK
        108
    YGBlvcAK  
       2023-09-05 07:49:28 +08:00 via Android
    强制启用 sni 加密,防止域名泄露,这样呢?
    lanwairen123
        109
    lanwairen123  
    OP
       2023-09-05 09:37:09 +08:00
    @YGBlvcAK 刚刚测试了,强制 tls 1.3 还是会阻断,我没找到 nginx 配置 esni 的方法,不过有说加密 sni 的直接一刀切,全部阻断,想想也是,墙不知道你干啥,直接阻断了事
    B1acKy1in
        110
    B1acKy1in  
       2023-09-05 10:31:54 +08:00
    @yinmin 我看云厂商备案,要求都是服务器距离到期要长于 3 天,确定可以?
    vvzzxx
        111
    vvzzxx  
       2023-09-05 10:50:35 +08:00
    我也遇到了差不多的问题,黑群晖在老家,人在郑州,阿里云 ipv6 域名解析。这几天突然就不能域名访问了,联通电信流量都不能访问,连了一下又 ipv6 的联通 WiFi 正常,家里朋友访问就是正常。看了一下楼里 rst 的解决方法,不了解这方面,只感觉学习成本起飞。
    yinmin
        112
    yinmin  
       2023-09-05 12:26:50 +08:00
    @B1acKy1in #110 不止是 3 天,是一直存在。如果不存在了,过不了几周,云服务商就会打电话给你,然后会取消备案接入。如果你的备案只有 1 个接入,接入取消后备案也被取消了。
    yinmin
        113
    yinmin  
       2023-09-05 13:00:55 +08:00
    @lanwairen123 如果你采用丢弃 RST 包的方式,建议仅丢弃 443 端口的 RST 包来提升稳定性,如果能配置其它端口(例如:4443 端口),把 https 服务改成 4443 端口,然后仅丢弃 4443 端口更好,毕竟这个端口只有你 1 个人在用,仅丢弃这一个端口的 RST 包不会对服务器产生过多的压力。

    iptables -I INPUT -p tcp --dport 4443 --tcp-flags RST RST -j DROP

    另外,加密 SNI 的方法是不可行的。
    lanwairen123
        114
    lanwairen123  
    OP
       2023-09-05 13:42:31 +08:00 via Android
    @yinmin 谢谢,准备试几天看看会有什么影响
    cunganbu
        115
    cunganbu  
       2023-09-06 23:20:44 +08:00
    我河南电信,突然发现自己境外的网站打不开了,以为是域名被墙,买了新域名 24 小时被墙,我以为是我用免费证书的问题,又买了新域名换了一家 ssl 证书 24 小时不到又被墙,我以为我服务器被盯上了,又换了服务器+新域名 24 小时不到又被墙...我才发现了问题的严重性,抓包看了一下就是楼主的情况,只要是 http/https 流量域名不是备案的+服务器不在国内,基本 24 小时内给你阻断,换了联通的网可以间歇性打开....日子越来越好了
    FishHawk
        116
    FishHawk  
       2023-09-13 13:12:06 +08:00   ❤️ 1
    @admin13579 说一个思路,墙的 RST 包只要你自己发它就不会发。所以可以每个 TCP 连接发一个特定 TLL 的 RST 包,刚好到墙又到不了服务器,就能破。
    cyaki
        117
    cyaki  
       266 天前
    @lanwairen123 请教下, 有后续解决方案没哇 ?
    lanwairen123
        118
    lanwairen123  
    OP
       264 天前   ❤️ 1
    @cyaki 现在没那么严重了,如果你还存在这个问题,建议参考楼上的讨论丢弃 RST 包试试。
    frankilla
        119
    frankilla  
       253 天前
    没看懂,但是焦作联通,我在家里自建的服务,通过域名能访问。
    param
        120
    param  
       236 天前
    @FishHawk 那建站能这么搞吗?服务器主动给客户端发 RST ,怎么样可以到墙又到不了客户端。
    ccrichard
        121
    ccrichard  
       121 天前
    同遇到了,目前有好办法访问它吗 移动端怎么办呢
    @lanwairen123
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2749 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 12:18 · PVG 20:18 · LAX 04:18 · JFK 07:18
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.