mirror of
https://github.com/WeeJeWel/wg-easy.git
synced 2024-12-23 01:29:24 +08:00
add WG_POST_UP, WG_POST_DOWN
This commit is contained in:
parent
e1582ec678
commit
a97142bb97
@ -15,3 +15,12 @@ module.exports.WG_DEFAULT_DNS = typeof process.env.WG_DEFAULT_DNS === 'string'
|
|||||||
? process.env.WG_DEFAULT_DNS
|
? process.env.WG_DEFAULT_DNS
|
||||||
: '1.1.1.1';
|
: '1.1.1.1';
|
||||||
module.exports.WG_ALLOWED_IPS = process.env.WG_ALLOWED_IPS || '0.0.0.0/0, ::/0';
|
module.exports.WG_ALLOWED_IPS = process.env.WG_ALLOWED_IPS || '0.0.0.0/0, ::/0';
|
||||||
|
|
||||||
|
module.exports.WG_POST_UP = process.env.WG_POST_UP || `
|
||||||
|
iptables -t nat -A POSTROUTING -s ${module.exports.WG_DEFAULT_ADDRESS.replace('x', '0')}/24 -o eth0 -j MASQUERADE;
|
||||||
|
iptables -A INPUT -p udp -m udp --dport 51820 -j ACCEPT;
|
||||||
|
iptables -A FORWARD -i wg0 -j ACCEPT;
|
||||||
|
iptables -A FORWARD -o wg0 -j ACCEPT;
|
||||||
|
`.split('\n').join(' ');
|
||||||
|
|
||||||
|
module.exports.WG_POST_DOWN = process.env.WG_POST_DOWN || '';
|
||||||
|
@ -19,6 +19,8 @@ const {
|
|||||||
WG_DEFAULT_ADDRESS,
|
WG_DEFAULT_ADDRESS,
|
||||||
WG_PERSISTENT_KEEPALIVE,
|
WG_PERSISTENT_KEEPALIVE,
|
||||||
WG_ALLOWED_IPS,
|
WG_ALLOWED_IPS,
|
||||||
|
WG_POST_UP,
|
||||||
|
WG_POST_DOWN,
|
||||||
} = require('../config');
|
} = require('../config');
|
||||||
|
|
||||||
module.exports = class WireGuard {
|
module.exports = class WireGuard {
|
||||||
@ -63,10 +65,10 @@ module.exports = class WireGuard {
|
|||||||
|
|
||||||
throw err;
|
throw err;
|
||||||
});
|
});
|
||||||
await Util.exec(`iptables -t nat -A POSTROUTING -s ${WG_DEFAULT_ADDRESS.replace('x', '0')}/24 -o eth0 -j MASQUERADE`);
|
// await Util.exec(`iptables -t nat -A POSTROUTING -s ${WG_DEFAULT_ADDRESS.replace('x', '0')}/24 -o eth0 -j MASQUERADE`);
|
||||||
await Util.exec('iptables -A INPUT -p udp -m udp --dport 51820 -j ACCEPT');
|
// await Util.exec('iptables -A INPUT -p udp -m udp --dport 51820 -j ACCEPT');
|
||||||
await Util.exec('iptables -A FORWARD -i wg0 -j ACCEPT');
|
// await Util.exec('iptables -A FORWARD -i wg0 -j ACCEPT');
|
||||||
await Util.exec('iptables -A FORWARD -o wg0 -j ACCEPT');
|
// await Util.exec('iptables -A FORWARD -o wg0 -j ACCEPT');
|
||||||
await this.__syncConfig();
|
await this.__syncConfig();
|
||||||
|
|
||||||
return config;
|
return config;
|
||||||
@ -91,7 +93,10 @@ module.exports = class WireGuard {
|
|||||||
[Interface]
|
[Interface]
|
||||||
PrivateKey = ${config.server.privateKey}
|
PrivateKey = ${config.server.privateKey}
|
||||||
Address = ${config.server.address}/24
|
Address = ${config.server.address}/24
|
||||||
ListenPort = 51820`;
|
ListenPort = 51820
|
||||||
|
PostUp = ${WG_POST_UP}
|
||||||
|
PostDown = ${WG_POST_DOWN}
|
||||||
|
`;
|
||||||
|
|
||||||
for (const [clientId, client] of Object.entries(config.clients)) {
|
for (const [clientId, client] of Object.entries(config.clients)) {
|
||||||
if (!client.enabled) continue;
|
if (!client.enabled) continue;
|
||||||
@ -105,7 +110,7 @@ PresharedKey = ${client.preSharedKey}
|
|||||||
AllowedIPs = ${client.address}/32`;
|
AllowedIPs = ${client.address}/32`;
|
||||||
}
|
}
|
||||||
|
|
||||||
debug('Saving config...');
|
debug('Config saving...');
|
||||||
await fs.writeFile(path.join(WG_PATH, 'wg0.json'), JSON.stringify(config, false, 2), {
|
await fs.writeFile(path.join(WG_PATH, 'wg0.json'), JSON.stringify(config, false, 2), {
|
||||||
mode: 0o660,
|
mode: 0o660,
|
||||||
});
|
});
|
||||||
@ -116,7 +121,7 @@ AllowedIPs = ${client.address}/32`;
|
|||||||
}
|
}
|
||||||
|
|
||||||
async __syncConfig() {
|
async __syncConfig() {
|
||||||
debug('Syncing config...');
|
debug('Config syncing...');
|
||||||
await Util.exec('wg syncconf wg0 <(wg-quick strip wg0)');
|
await Util.exec('wg syncconf wg0 <(wg-quick strip wg0)');
|
||||||
debug('Config synced.');
|
debug('Config synced.');
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user