Skip to content

About

Windows 上的 PPPoE 一键拨号脚本。双击运行,首次录入宽带账号密码,之后双击直接拨号、不再询问。 不需要装任何东西,不需要敲命令,不依赖第三方软件。

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

auto-pppoe

Windows 上的 PPPoE 一键拨号脚本。双击运行,首次录入宽带账号密码,之后双击直接拨号、不再询问。

不需要装任何东西,不需要敲命令,不依赖第三方软件,部分校园网也适用。


快速开始

  1. 把 pppoe-connect.bat 和 pppoe-core.ps1 放在同一个文件夹里

  2. 双击 pppoe-connect.bat

  3. 首次运行会提示输入宽带账号和密码:

    ============================================
                 PPPoE 首次设置
    ============================================
    
    需要录入宽带账号和密码,只需这一次。
    录入后会生成配置文件,以后双击直接拨号。
    
    
  4. 录入完成后生成 pppoe-config.ini,并立刻发起拨号

  5. 之后每次双击,直接拨号,不再询问

想重新录入?删掉 pppoe-config.ini,再双击一次。


文件说明

文件 用途 能否删除
pppoe-connect.bat 双击这个。负责首次录入和调用拨号 不能
pppoe-core.ps1 拨号核心逻辑(复用或创建宽带连接) 不能
pppoe-config.ini 自动生成,保存账号密码 删掉即重新录入

生成的配置文件长这样:

user=07751234567@163.gd
pass=your_password
entry=PPPoE-AutoDial

它是怎么工作的

  1. 检查 pppoe-config.ini 是否存在且含有效账号
  2. 不存在 → 提示录入账号密码,写入配置文件
  3. 存在 → 跳过录入,直接进拨号
  4. 拨号时优先复用系统中已有的宽带连接(例如「宽带连接」)——这条路不需要管理员权限
  5. 系统里没有可用条目时,才创建一个新的 PPPoE 条目——这条路可能需要右键「以管理员身份运行」一次

开机自动拨号

  1. 按 Win + R,输入 shell:startup,回车

  2. 在打开的文件夹里右键 → 新建 → 快捷方式

  3. 位置填(把路径换成你自己的):

    "D:\auto-pppoe\pppoe-connect.bat"
    
  4. 一路下一步即可

注意:开机自启时脚本会弹出拨号窗口,拨完保持窗口打开。想让它自动消失,把 bat 末尾的 pause >nul 删掉即可。


报错速查

错误码 含义 怎么办
651 网卡未就绪 / 上游已有人拨号 先看下面的「本机是否需要拨号」。如果上游路由器(如 192.168.0.1)已经联网,本机就不该再拨
678 没有应答 检查网线、光猫是否通电、PPPoE 服务是否正常
691 账号或密码错误 删掉 pppoe-config.ini 重新录入
623 找不到指定的连接条目 右键「以管理员身份运行」脚本一次,让它创建条目
815 宽带连接被禁用 在「网络连接」里启用对应网卡
632 结构体大小错误 属程序 bug,请提 issue 并附上错误截图

本机是否需要拨号?

先跑一下这个判断——如果已经能上网,就不需要 PPPoE:

ipconfig | findstr /i "默认网关 Default Gateway"
  • 有网关(例如 192.168.0.1) → 上游设备已经拨号并做了 NAT,你不需要拨号,直接上网即可。此时脚本会失败(651/678),且不是脚本的问题
  • 没有网关 → 本机确实需要自己拨号,脚本才有意义。这种情况通常要把光猫改成桥接模式,再由本机拨号

安全性说明

  • 密码以明文保存在 pppoe-config.ini,与 Windows 自带「宽带连接」记住密码的行为一致
  • 个人专用机:没什么问题
  • 公用/多人使用的电脑:建议不要保留该文件,或每次手动输入

环境要求

  • Windows 10 / 11(内置 PowerShell 5.1 即可)
  • 一块能跑 PPPoE 的网卡(直连光猫,或处于桥接模式的光猫)

实测记录

以下均已在本机验证:

项目 结果
首次运行录入账号密码 生成 pppoe-config.ini,内容正确
第二次运行 不再询问,直接进入拨号流程
配置文件缺字段 正确拦截并提示重新录入
中文显示 GBK 控制台下全程无乱码
复用已有宽带连接 成功识别并复用系统现存条目
RAS 结构体尺寸 必须为 6724,其它尺寸返回 632

踩过的坑(供后来者参考)

  1. .bat 必须用 GBK 编码、CRLF 换行、且不要 chcp 65001 UTF-8 代码页下,两条相邻的中文 echo 行会被 cmd 解析错误,报 'xxx' is not recognized。

  2. .ps1 必须用 UTF-8 带 BOM PowerShell 5.1 读取无 BOM 的 UTF-8 文件时按 GBK 解释,中文会乱码。

  3. RAS 结构体 RASENTRY 尺寸必须是 6724 字节 实测 6724 → 错误 621(正常语义),其它尺寸一律 632(结构大小错误)。


License

MIT

About

Windows 上的 PPPoE 一键拨号脚本。双击运行,首次录入宽带账号密码,之后双击直接拨号、不再询问。 不需要装任何东西,不需要敲命令,不依赖第三方软件。

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Contributors

Languages