Use*_*987 9 java android wireguard
我想使用库 com.wireguard.android:tunnel (1.0.20211029) 创建第三方 VPN 应用程序,任何人都可以帮助我为我提供任何好的资源或指导我吗?
在我的应用程序中,我从文件管理器导入 .config 文件,现在如何使用隧道库将该文件连接到服务器。我正在使用 java 。
我确实遵循了https://github.com/WireGuard/wireguard-android但该应用程序包装了很多隧道库代码。我正在寻找一个简单的示例,说明如何直接使用隧道库,而无需使用 TunnelManager 和 ObservableTunnel 进行所有包装。
请指导我
Ant*_*319 11
UPD:添加了请求意图,因为它在第一次连接时是必要的
UPD 2:我制定了分步指南:https://github.com/Anton2319/Anton2319/blob/master/articles/wireguard-guide/article.md
我认为这段代码适合你:
在您的主要活动中,使用此(替换 IP、公钥和私钥):
Tunnel tunnel = new WgTunnel();
Intent intentPrepare = GoBackend.VpnService.prepare(this);
if(intentPrepare != null) {
startActivityForResult(intentPrepare, 0);
}
Interface.Builder interfaceBuilder = new Interface.Builder();
Peer.Builder peerBuilder = new Peer.Builder();
Backend backend = new GoBackend(this);
AsyncTask.execute(new Runnable() {
@Override
public void run() {
try {
backend.setState(tunnel, UP, new Config.Builder()
.setInterface(interfaceBuilder.addAddress(InetNetwork.parse("10.0.0.2/32")).parsePrivateKey("privatekeybase64").build())
.addPeer(peerBuilder.addAllowedIp(InetNetwork.parse("0.0.0.0/0")).setEndpoint(InetEndpoint.parse("yourhost:51820")).parsePublicKey("pubkeybase64").build())
.build());
} catch (Exception e) {
e.printStackTrace();
}
}
});
Run Code Online (Sandbox Code Playgroud)
在与主要活动相同的包中,创建此类:
package package.name.here;
import com.wireguard.android.backend.Tunnel;
public class WgTunnel implements Tunnel {
@Override
public String getName() {
return "wgpreconf";
}
@Override
public void onStateChange(State newState) {
}
}
Run Code Online (Sandbox Code Playgroud)
在AndroidManifest.xml中:
<application ...>
<service android:name="com.wireguard.android.backend.GoBackend$VpnService" android:permission="android.permission.BIND_VPN_SERVICE" android:exported="true">
<intent-filter>
<action android:name="android.net.VpnService"/>
</intent-filter>
</service>
</application>
<uses-permission android:name="android.permission.INTERNET" />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4171 次 |
| 最近记录: |