文章正文
port_reuse是用golang实现的windows and linux 端口复用工具,主要是在项目中遇到以下问题时使用(以均不出网得场景下):
-
外网打点遇到内网不出网,代理慢的一批,不管是rdp、ssh还是http等连接均卡得不行。
-
内网环境遇到强隔离,双方只有个别端口能通无法做二层代理。使用Neo-reGeorg代理又太慢,尤其是正向加正向代理。
https://github.com/zema1/suo5
首先来看代码我们可以通过"golang.org/x/sys/windows"库来指定SO_REUSEADDR。
var lc = net.ListenConfig{
Control: func(network, address string, c syscall.RawConn) error {
var opErr error
if err := c.Control(func(fd uintptr) {
opErr = windows.SetsockoptInt(windows.Handle(fd), windows.SOL_SOCKET, windows.SO_REUSEADDR, 1)
}); err != nil {
return err
}
return opErr
},
}
l, err := lc.Listen(context.Background(), "tcp", laddr)
我们可以看出以上不同的进程来监听同一个程序。那么端口复用到底又什么用的。我们可以进行以下实验。
原文始发于微信公众号(安全之眼SecEye):Windows/Linux端口复用工具
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论