杭州联通端口全被屏蔽

299 天前
 asuraa

就剩25110端口 是开放的 ,其他从 1 到 65535 全都是封锁的

我网上抄了个 golang 程序测试的

package main

import (
	"flag"
	"fmt"
	"net"
	"runtime"
	"time"
)

// CheckIsOpen 检查端口是否打卡
func CheckIsOpen(domain string, timeout time.Duration, portChan chan int, exitChan chan bool, openPort []int, rescan chan int) {
	for {
		port, ok := <-portChan
		if !ok {
			break
		}
		socket := fmt.Sprintf("%v:%v", domain, port)
		_, err := net.DialTimeout("tcp", socket, timeout) //发起握手操作  有回应 说明打开了端口 并且做了延时 超过一定时间 直接说明未打开

		defer func() {
			recover()
		}()

		if err == nil {
			rescan <- port
			fmt.Println(socket, " 打开")
			openPort = append(openPort, port)
		} else {
			//fmt.Println(socket, " 关闭")
		}
	}
	exitChan <- true
}
func main() {
	cores := runtime.NumCPU()
	runtime.GOMAXPROCS(cores - 1)
	domainP := flag.String("domain", "", "请输入指定的 IP 地址")
	flag.Parse()
	domain := *domainP

	if domain == "" {
		fmt.Println("请输入 IP 地址")
		return
	}
	openPort := make([]int, 10)
	exitChan := make(chan bool)
	portChan := make(chan int)
	resChan := make(chan int, 100)
	go func() {
		for i := 0; i < 65535; i++ {
			portChan <- i
		}
		close(portChan) //及时关闭管道 使用 for 循环取出时才不会等待
	}()
	timeout := time.Millisecond * 200
	for i := 0; i < 18; i++ {
		go CheckIsOpen(domain, timeout, portChan, exitChan, openPort, resChan)
	}
	for i := 0; i < 18; i++ {
		<-exitChan
	}
	close(exitChan)
	close(resChan)
	fmt.Println("开启的端口号:")
	for {
		port, res := <-resChan
		if !res {
			break
		}
		fmt.Println(port)
	}
}

1662 次点击
所在节点    宽带症候群
19 条回复
ranaanna
299 天前
奇怪的,最应该屏蔽的 25 和 110 反而是开的,说不通的
lemon6
299 天前
我这里一切正常啊
asuraa
299 天前
@ranaanna 我换了猫 但是这玩意跟猫应该没关系啊, 我用的爱快路由 然后端口转发到群晖 还设置了 dmz 完事扫描都是封禁的


@lemon6 你也是杭州联通? 你是那个 fttr 的 1000m 么 我是 fttr 1000m 的然后自己换了光猫
dude4
299 天前
光猫拨号?有些光猫防火墙是 BUG 的,你懂
szdosar
299 天前
我怀疑可能是由于线程并发导致的,
当并发扫描大量端口时,
某些端口的结果可能会被其他线程的输出所覆盖,
或者由于某种原因被忽略。
你试试把线程数降低点,
比如 5 线程?
szdosar
299 天前
另外,你的超时毫秒改成 400-500 毫秒看看?
yinmin
299 天前
linux 测试 TCP 端口的指令:nc -vz -w 2 [ip] [port]
asuraa
298 天前
@yinmin 这个我也搞了个脚本测试 也是全封 脚本如下:

#!/bin/bash

for port in {1..65535}; do
echo -n "TCP $port: "
result=$(nc "1.1.1.1" "$port" -w 1 -v 2>&1 < /dev/null)
if [ "$?" -eq 0 ]; then
echo "Open"
echo "$port" >> success.txt
continue
fi
if [[ "$result" == *refused* ]]; then
echo "Closed"
fi
if [[ "$result" == *time* ]]; then
echo "$port" >> block_list.txt
echo "BLOCKED"
fi
done




@dude4 不是光猫拨号 我是爱快软路由 pppoe 拨号 我换光猫是为了突破 1G 宽带上限 以前电信用的就是这个没啥问题啊
ranaanna
298 天前
1. 非公网 IP ?但是不能解释为什么 25 和 110 是开的

2. 在内网测的?很多时候会出现这样的情况:内网的设备使用外部 IP 地址相互通信。这种情况被形象地叫做发夹网络( hairpinning )。通常路由器软件在做 port forwarding 的时候会考虑这种情况作相应的地址转换(叫做 NAT loopback, 或 NAT reflection, 或 harpin NAT )。也有可能爱快默认没有开启,或需要额外的配置?这也可解释为什么 25 和 110 是开的(因为是爱快开的,而其他端口因为是在内网用外部 ip 访问,但又没有 harping NAT ,所以都不通)
asuraa
298 天前
@ranaanna pppoe 拨号的 ip 跟我 ip138 看到的是同一个 所以是公网 ip

我昨天在外地 用外地的宽带测试的
lemon6
297 天前
@luodaoyi #3 是的,杭州千兆联通+vsol 光猫,公网 ip+端口一切正常
asuraa
297 天前
@lemon6 我是拱墅的你在哪里 我也是千兆联通 + vsol +公网 ip 端口全完蛋 难道是爱快的问题么
ranaanna
297 天前
@luodaoyi 思路对了,运营商没有道理给你公网 IP 同时又屏蔽所有其他端口同时又开放 25 和 110 。所以一定是你的爱快自己开了 25 和 110 ,或者 DMZ 到了开了 25 和 110 内网设备。如果是后者,记得需要把 port forwarding 到其他设备的端口排除在 DMZ 外,不然是不行的。不知道爱快又没有相应的设置选项
asuraa
297 天前
@ranaanna 非常有可能 问题是我之前电信也是同一个爱快 都是正常的 奇了怪了
AS58453
297 天前
不可能封闭所有端口,不然正常的上网都出不去了呀。普通的网络请求都是高位端口。
ranaanna
297 天前
@AS58453 这倒不会影响正常的上网,只是屏蔽所有 inbound 连接而已,并不是不能建立连接
asuraa
296 天前
@ranaanna 是的 屏蔽 inbound 不影响上网 就是无法对外提供服务
nightcc
296 天前
很奇怪

首先怀疑是路由的问题,可以检查一下端口转发是否正常(比如把 wan 连到另一个路由上从外部扫描),或者直接用路由监听某个端口

其次怀疑扫描的问题,是不是扫的频率太高才被防火墙拦的(运营商的防火墙,或者自己路由的防火墙),可以单独扫几个端口试试,再试试用 nmap 扫,它可以区分 closed 和 filtered ,因为一般防火墙拒绝后会回 icmp 包
asuraa
296 天前
@nightcc 我打算周末有空就把爱快撤了直接上硬路由 然后再观察观察情况

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

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

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

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

© 2021 V2EX