22
2025
05
22:25:11

内网服务器利用跳板机代理访问公网:3Proxy

malaohu我是小马甲
2025年05月21日 20:34
图片


22年的时候博主在服务器运维的时候,需要将服务器联网更新系统以及安装依赖,当时利用了一个软件ccproxy 。在使用过程中也挺不错的,唯一的缺点就是需要安装软件,需要激活(否则限制连接数)。

这里介绍另一个开源软件,无需安装就可使用!

 

下载地址

官网下载:https://3proxy.ru/download/stable/

Github仓库下载:https://github.com/3proxy/3proxy/releases

 

 

恶意软件

目前该软件部分杀软报毒,如图!

图片


来自DeepSeek的解释:

3proxy 是一个功能强大的代理服务器工具,虽然其设计初衷是为了合法的网络代理服务(如转发流量、隐藏 IP 等),但它也可能被恶意软件或攻击者用于非法活动,例如:

  • 构建跳板服务器以隐藏攻击者的踪迹
  • 绕过防火墙或访问受限内容

由于这些潜在的滥用场景,杀毒软件可能会将其标记为“风险软件”或“潜在威胁”。

杀毒软件的误报机制

许多杀毒软件使用启发式分析或行为检测技术来识别潜在威胁。如果某个程序的行为模式与已知恶意软件相似(例如监听端口、转发流量等),即使它本身是合法的,也可能会被误报为病毒

风险软件分类

3proxy 被归类为“RiskWare”(风险软件)的情况并不少见。这类软件本身并非恶意,但可能被滥用于恶意目的。例如:

  • RiskWare/Win32.3proxy 和 RiskWare/Win64.3proxy 都曾被报告为风险软件。
  • 这种分类通常是因为它们可以被用来绕过网络安全策略或隐藏网络活动

用户行为的影响

如果你从非官方渠道下载了 3proxy,或者文件被篡改(例如捆绑了恶意代码),那么杀毒软件可能会直接将其视为病毒。此外,如果 3proxy 被配置为开放公网访问且未设置认证,也可能触发杀毒软件的警报。

如想使用就得将该软件设置到杀软的白名单中,才能继续使用!

微软发布的说明:https://www.microsoft.com/en-us/wdsi/threats/malware-encyclopedia-description?Name=Program:Win32/TinyProxy

所以下载该软件,浏览器安全级别高的话,下载有些难度。

 

使用教程

简单方式

最简单方式,仅需五步完成!

第一步:直接新建或修改配置 3proxy.cfg

  • nserver8.8.8.8


  • nserver8.8.4.4


  • nscache65536



  • proxy-p808


  • allow**


 

第二歩:打开命令行终端
图片

第三步:输入启动命令 .\3proxy.exe

图片

 

 

第四步:查看本机IP,可利用 ipconfig 查看。或者网络配置信息中查看!

 

第五步:在需要联网的服务器上执行以下内容(请将 192.168.1.50 换成 你自己的本机IP即可)

  • export

     proxy="http://192.168.1.50:808"
  • export

     sproxy="socks://192.168.1.50:808"
  • export

     http_proxy=$proxy
  • export

     FTP_PROXY=$proxy
  • export

     ftp_proxy=$proxy
  • export

     all_proxy=$sproxy
  • export

     ALL_PROXY=$sproxy
  • export

     HTTPS_PROXY=$proxy
  • export

     https_proxy=$proxy
  • export

     HTTP_PROXY=$proxy
  • export

     no_proxy="localhost, 127.0.0.1, ::1"

 

 

配置文件

以下是完整配置文件说明,需要更多功能可参考使用。

  • #!/usr/local/bin/3proxy


  • # 是的,3proxy.cfg 可以是可执行的,在这种情况下,你应该放置类似以下内容:


  • # config /usr/local/3proxy/3proxy.cfg


  • # 来指定在重新加载时 3proxy 应该读取哪个配置文件。


  • # system "echo Hello world!"


  • # 如果代理启动时需要执行某些外部命令,可以使用 system。


  • # 我们可以配置 nservers 来避免不安全的 gethostbyname() 使用 <button class="citation-flag" data-index="1">。


  • nserver10.1.2.1


  • nserver10.2.2.2


  • # nscache 很好地节省了速度、流量和带宽。


  • nscache65536


  • # nsrecord porno.security.nnov.ru 0.0.0.0


  • # 没有人能够通过名称访问 porno.security.nnov.ru。


  • # nsrecord wpad.security.nnov.ru www.security.nnov.ru


  • # wpad.security.nnov.ru 将解析为 www.security.nnov.ru。



  • timeouts15306018018001560


  • # 在这里我们可以更改超时值。


  • users3

    APA3A:CL:3apa3"test:CR:$1$qwer$CHFTUFGqkjue9HyhcMHEe1"
  • # 注意,"" 是必需的,否则 $... 被视为包含文件名。


  • # $1$qwer$CHFTUFGqkjue9HyhcMHEe1 是 MD5 加密格式的 'test' 密码。


  • # users $/usr/local/etc/3proxy/passwd


  • # 这个例子展示了如何包含密码文件。对于包含的文件,


  • # <CR> 和 <LF> 被视为字段分隔符。


  • # daemon


  • # 现在我们将不再依赖任何控制台(守护进程化)。daemon 必须在 *nix 上给出


  • # 任何重要命令之前。


  • service


  • # 在 NT 下如果希望 3proxy 作为服务启动,则 service 是必需的。


  • # log /var/log/3proxy/log D


  • log

     c:\3proxy\logs\3proxy.log D
  • # log 允许指定日志文件位置和轮换,D 表示日志文件每天创建一次。


  • # logformat "L%d-%m-%Y %H:%M:%S %z %N.%p %E %U %C:%c %R:%r %O %I %h %T"


  • # logformat "Linsert into log (l_date, l_user, l_service, l_in, l_out, l_descr) values ('%d-%m-%Y %H:%M:%S', '%U', '%N', %I, %O, '%T')"


  • # 兼容 Squid access.log:


  • #


  • # "- +_G%t.%. %D %C TCP_MISS/200 %I %1-1T %2-2T %U DIRECT/%R application/unknown"


  • # 或者,更兼容的格式没有 %D


  • # "- +_G%t.%.      1 %C TCP_MISS/200 %I %1-1T %2-2T %U DIRECT/%R application/unknown"


  • #


  • # 兼容 ISA 2000 代理 WEBEXTD.LOG(字段用 TAB 分隔):


  • #


  • # "- + L%C %U Unknown Y %Y-%m-%d %H:%M:%S w3proxy 3PROXY - %n %R %r %D %O %I http TCP %1-1T %2-2T - - %E - - -"


  • #


  • # 兼容 ISA 2004 代理 WEB.w3c


  • #


  • # "- + L%C %U Unknown %Y-%m-%d %H:%M:%S 3PROXY - %n %R %r %D %O %I http %1-1T %2-2T - %E - - Internal External 0x0 Allowed"


  • #


  • # 兼容 ISA 2000/2004 防火墙 FWSEXTD.log(字段用 TAB 分隔):


  • #


  • # "- + L%C %U unnknown:0:0.0 N %Y-%m-%d %H:%M:%S fwsrv 3PROXY - %n %R %r %D %O %I %r TCP Connect - - - %E - - - - -"


  • #


  • # 兼容 HTTPD 标准日志(Apache 和其他):


  • #


  • # "-""+_L%C - %U [%d/%o/%Y:%H:%M:%S %z] ""%T"" %E %I"


  • # 或者更兼容的格式没有错误代码


  • # "-""+_L%C - %U [%d/%o/%Y:%H:%M:%S %z] ""%T"" 200 %I"


  • # 在日志文件中,我们希望用下划线代替空格。


  • logformat"- +_L%t.%.  %N.%p %E %U %C:%c %R:%r %O %I %h %T"



  • # archiver gz /bin/gzip %F


  • # archiver zip zip -m -qq %A %F


  • # archiver zip pkzipc -add -silent -move %A %F


  • archiver

     rar rar a -df -inul %A %F
  • # 如果指定了压缩器,日志文件将在关闭后被压缩。


  • # 你应该指定扩展名、路径到压缩器和命令行,%A 将被替换为存档文件名,%f - 原始文件名。


  • # 原始文件不会被删除,因此压缩器应处理它。


  • rotate30


  • # 我们将保留最后 30 个日志文件。


  • auth

     iponly
  • # auth nbname


  • # auth strong


  • # auth 指定用户身份验证类型。如果你指定 none,代理不会做任何事情来检查用户名。


  • # 如果你指定 nbname,代理会向客户端的 UDP/137 发送 NetBIOS 名称请求包并解析


  • # messanger 服务的 NetBIOS 名称。


  • # Strong 意味着代理将检查密码。对于强身份验证,未知用户将不允许使用代理,无论 ACL 如何。


  • # 如果你不想检查用户名但希望 ACL 生效,你应该指定 auth iponly。



  • # allow ADMINISTRATOR,root


  • # allow * 127.0.0.1,192.168.1.1 * *


  • # parent 1000 http 192.168.1.2 80 * * * 80


  • # allow * 192.168.1.0/24 * 25,53,110,20-21,1024-65535


  • # 如果用户名匹配 ADMINISTRATOR 或 root,或者客户端 IP 是 127.0.0.1 或 192.168.1.1,


  • # 我们将允许一切。否则,我们将重定向任何对端口 80 的请求到我们的 Web 服务器 192.168.0.2。


  • # 我们将允许从网络 192.168.1.0/24 到 SMTP、POP3、FTP、DNS 和非特权端口的任何出站连接。


  • # 注意,redirect 也可以与代理或 portmapper 一起使用。它允许你为不同的客户端重定向请求到不同的端口或不同的服务器。


  • # 共享互联网访问


  • external10.1.1.1


  • # external 是 3proxy 用于出站连接的地址。0.0.0.0 表示任何接口。使用 0.0.0.0 不好,因为它允许连接到 127.0.0.1。


  • internal192.168.1.1


  • # internal 是代理监听传入请求的接口地址。127.0.0.1 表示只有本地主机才能使用此代理。这是你应该为客户端指定的代理 IP。


  • # 你可以使用 0.0.0.0,但你不应该这样做,因为这样可能会导致你的网络中出现开放代理。


  • auth

     none
  • # 不需要身份验证。


  • dnspr


  • # dnsproxy 监听 UDP/53 以回答客户端的 DNS 请求。它需要 nserver/nscache 配置。



  • # external $./external.ip


  • # internal $./internal.ip


  • # 这只是提供外部和内部地址的另一种形式,允许你从文件中读取这些地址。


  • auth

     strong
  • # 我们想保护内部接口。


  • deny

     * * 127.0.0.1,192.168.1.1
  • # 并允许 HTTP 和 HTTPS 流量。


  • allow

     * * * 80-88,8080-8088 HTTP
  • allow

     * * * 443,8443 HTTPS
  • proxy

     -n
  • auth

     none
  • # pop3p 将在没有任何身份验证的情况下使用。这不是一个好的选择,


  • # 因为可以使用 pop3p 访问任何端口。


  • pop3p


  • tcppm25

     mail.my.provider 25
  • # udppm -s 53 ns.my.provider 53


  • # 我们可以将端口 TCP/25 映射到提供商的 SMTP 服务器,并将 UDP/53 映射到提供商的 DNS。


  • # 现在我们可以使用我们的代理作为 SMTP 和 DNS 服务器。


  • # -s 开关用于 UDP 表示“单包”服务 - 而不是设置一段时间的关联,只会在 1 个数据包上设置关联。


  • # 对于像 DNS 这样的服务非常有用,但对于一些大规模的服务(如多媒体流或在线游戏)则不然。


  • auth

     strong
  • flush


  • allow3

    APA3A,test
  • maxconn20


  • socks


  • # 对于 socks,我们将使用密码身份验证和不同的访问控制 -


  • # 我们刷新先前配置的 ACL 列表并创建一个新的列表,以允许用户 test 和 3APA3A 从任何位置连接。



  • auth

     strong
  • flush


  • internal127.0.0.1


  • allow3

    APA3127.0.0.1
  • maxconn3


  • admin


  • # 仅允许用户 3APA3A 从 127.0.0.1 地址通过 127.0.0.1 地址访问管理界面。


  • # 将外部 80 和 443 端口映射到内部 Web 服务器。


  • # 下面的例子展示了如何使用 3proxy 在内部网络中发布 Web 服务器到互联网。


  • # 我们必须切换内部和外部地址并刷新任何 ACL。


  • # auth none


  • # flush


  • # external $./internal.ip


  • # internal $./external.ip


  • # maxconn 300


  • # tcppm 80 websrv 80


  • # tcppm 443 websrv 443



  • # chroot /usr/local/jail


  • # setgid 65535


  • # setuid 65535


  • # 现在我们不需要任何 root 权限。我们可以 chroot 并设置 setgid/setuid。


收起 

 

最后总结

该工具本身没有问题,但是没办法。像我们经常使用的FRP也是会报毒。大家自行斟酌吧!




推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

本文链接:https://zblog.hqyman.cn/post/11324.html 非本站原创文章欢迎转载,原创文章需保留本站地址!

分享到:
打赏





休息一下~~


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

请先 登录 再评论,若不是会员请先 注册

您的IP地址是: