Skip to content

feat: add OpenVPN outbound support#2785

Merged
wwqgtxx merged 4 commits into
MetaCubeX:Alphafrom
RomanovCaesar:Alpha
May 13, 2026
Merged

feat: add OpenVPN outbound support#2785
wwqgtxx merged 4 commits into
MetaCubeX:Alphafrom
RomanovCaesar:Alpha

Conversation

@RomanovCaesar

Copy link
Copy Markdown

Adds OpenVPN outbound support for client configs generated by hwdsl2/openvpn-install.

Summary:

  • add OpenVPN client transport implementation
  • support tls-crypt, key-method 2, AES-128-GCM data channel, TCP/UDP transports
  • parse inline ca/cert/key/tls-crypt blocks from .ovpn client configs
  • add type: openvpn outbound integration through the gVisor L3 stack
  • handle PUSH_REPLY options including ifconfig, DNS, peer-id and redirect settings
  • add tests for config parsing, tls-crypt, control packets, key derivation and data channel

Tests:

  • go test -tags with_gvisor ./transport/openvpn ./adapter/outbound

Manual validation:

  • tested with a real openvpn-install generated client config
  • HTTP/HTTPS browsing and app traffic worked through mihomo routing rules

@wwqgtxx

wwqgtxx commented May 13, 2026

Copy link
Copy Markdown
Collaborator

Thank you for your contribution. Please change the outbound configuration file format to a YAML format similar to the current WireGuard outbound format. We do not need to directly support the .ovpn format configuration file.

@wwqgtxx

wwqgtxx commented May 13, 2026

Copy link
Copy Markdown
Collaborator

Please add configuration instructions to docs/config.yaml.

@wwqgtxx

wwqgtxx commented May 13, 2026

Copy link
Copy Markdown
Collaborator

Similar to masque/wireguard, please also add the remote-dns-resolve and dns configurations.

@wwqgtxx wwqgtxx merged commit 7af9eeb into MetaCubeX:Alpha May 13, 2026
@CraKeyBoy

Copy link
Copy Markdown

如果使用的2FAS 的动态密码,如何配置,感谢

@RomanovCaesar

Copy link
Copy Markdown
Author

如果使用的2FAS 的动态密码,如何配置,感谢

只支持 hwdsl2/openvpn-install 生成的OpenVPN配置,不支持动态密码

@CraKeyBoy

Copy link
Copy Markdown

如果使用的2FAS 的动态密码,如何配置,感谢

只支持 hwdsl2/openvpn-install 生成的OpenVPN配置,不支持动态密码

后续有考虑支持吗?

@RomanovCaesar

Copy link
Copy Markdown
Author

如果使用的2FAS 的动态密码,如何配置,感谢

只支持 hwdsl2/openvpn-install 生成的OpenVPN配置,不支持动态密码

后续有考虑支持吗?

暂不考虑支持

@NevadaCities

Copy link
Copy Markdown

请问能考虑添加AES-CBC加密方式与SHA1认证方式吗?

@dzx941

dzx941 commented May 19, 2026

Copy link
Copy Markdown

请问能考虑添加AES-CBC加密方式与SHA1认证方式吗?

支持,因为vpngate大部分节点均为此加密认证方式

@RomanovCaesar

Copy link
Copy Markdown
Author

请问能考虑添加AES-CBC加密方式与SHA1认证方式吗?

虽然当初提交这个pr的初衷并不是为了方便使用vpngate之类的公益节点,但是有空了会看下支持一下

kuno pushed a commit to kuno/mihomo that referenced this pull request May 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants