Random port on install
This commit is contained in:
parent
338499247d
commit
2da1025f26
4 changed files with 44 additions and 25 deletions
|
@ -1,5 +1,7 @@
|
||||||
#include "protocols_defs.h"
|
#include "protocols_defs.h"
|
||||||
|
|
||||||
|
#include <QRandomGenerator>
|
||||||
|
|
||||||
using namespace amnezia;
|
using namespace amnezia;
|
||||||
|
|
||||||
QDebug operator<<(QDebug debug, const amnezia::ProtocolEnumNS::Proto &p)
|
QDebug operator<<(QDebug debug, const amnezia::ProtocolEnumNS::Proto &p)
|
||||||
|
@ -98,15 +100,28 @@ amnezia::ServiceType ProtocolProps::protocolService(Proto p)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ProtocolProps::getPortForInstall(Proto p)
|
||||||
|
{
|
||||||
|
switch (p) {
|
||||||
|
case Awg:
|
||||||
|
case WireGuard:
|
||||||
|
case ShadowSocks:
|
||||||
|
case OpenVpn:
|
||||||
|
return QRandomGenerator::global()->bounded(30000, 50000);
|
||||||
|
default:
|
||||||
|
return defaultPort(p);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
int ProtocolProps::defaultPort(Proto p)
|
int ProtocolProps::defaultPort(Proto p)
|
||||||
{
|
{
|
||||||
switch (p) {
|
switch (p) {
|
||||||
case Proto::Any: return -1;
|
case Proto::Any: return -1;
|
||||||
case Proto::OpenVpn: return 1194;
|
case Proto::OpenVpn: return QString(protocols::openvpn::defaultPort).toInt();
|
||||||
case Proto::Cloak: return 443;
|
case Proto::Cloak: return QString(protocols::cloak::defaultPort).toInt();
|
||||||
case Proto::ShadowSocks: return 6789;
|
case Proto::ShadowSocks: return QString(protocols::shadowsocks::defaultPort).toInt();
|
||||||
case Proto::WireGuard: return 51820;
|
case Proto::WireGuard: return QString(protocols::wireguard::defaultPort).toInt();
|
||||||
case Proto::Awg: return 55424;
|
case Proto::Awg: return QString(protocols::awg::defaultPort).toInt();
|
||||||
case Proto::Ikev2: return -1;
|
case Proto::Ikev2: return -1;
|
||||||
case Proto::L2tp: return -1;
|
case Proto::L2tp: return -1;
|
||||||
|
|
||||||
|
|
|
@ -228,6 +228,8 @@ namespace amnezia
|
||||||
|
|
||||||
Q_INVOKABLE static ServiceType protocolService(Proto p);
|
Q_INVOKABLE static ServiceType protocolService(Proto p);
|
||||||
|
|
||||||
|
Q_INVOKABLE static int getPortForInstall(Proto p);
|
||||||
|
|
||||||
Q_INVOKABLE static int defaultPort(Proto p);
|
Q_INVOKABLE static int defaultPort(Proto p);
|
||||||
Q_INVOKABLE static bool defaultPortChangeable(Proto p);
|
Q_INVOKABLE static bool defaultPortChangeable(Proto p);
|
||||||
|
|
||||||
|
|
|
@ -75,33 +75,35 @@ void InstallController::install(DockerContainer container, int port, TransportPr
|
||||||
ProtocolProps::transportProtoToString(transportProto, protocol));
|
ProtocolProps::transportProtoToString(transportProto, protocol));
|
||||||
|
|
||||||
if (container == DockerContainer::Awg) {
|
if (container == DockerContainer::Awg) {
|
||||||
QString defaultJunkPacketCount = QString::number(QRandomGenerator::global()->bounded(3, 10));
|
QString junkPacketCount = QString::number(QRandomGenerator::global()->bounded(3, 10));
|
||||||
QString defaultJunkPacketMinSize = QString::number(50);
|
QString junkPacketMinSize = QString::number(50);
|
||||||
QString defaultJunkPacketMaxSize = QString::number(1000);
|
QString junkPacketMaxSize = QString::number(1000);
|
||||||
QString defaultInitPacketJunkSize = QString::number(QRandomGenerator::global()->bounded(15, 150));
|
QString initPacketJunkSize = QString::number(QRandomGenerator::global()->bounded(15, 150));
|
||||||
QString defaultResponsePacketJunkSize = QString::number(QRandomGenerator::global()->bounded(15, 150));
|
QString responsePacketJunkSize = QString::number(QRandomGenerator::global()->bounded(15, 150));
|
||||||
|
|
||||||
QSet<QString> headersValue;
|
QSet<QString> headersValue;
|
||||||
while (headersValue.size() != 4) {
|
while (headersValue.size() != 4) {
|
||||||
headersValue.insert(QString::number(QRandomGenerator::global()->bounded(1, std::numeric_limits<qint32>::max())));
|
|
||||||
|
auto max = (std::numeric_limits<qint32>::max)();
|
||||||
|
headersValue.insert(QString::number(QRandomGenerator::global()->bounded(1, max)));
|
||||||
}
|
}
|
||||||
|
|
||||||
auto headersValueList = headersValue.values();
|
auto headersValueList = headersValue.values();
|
||||||
|
|
||||||
QString defaultInitPacketMagicHeader = headersValueList.at(0);
|
QString initPacketMagicHeader = headersValueList.at(0);
|
||||||
QString defaultResponsePacketMagicHeader = headersValueList.at(1);
|
QString responsePacketMagicHeader = headersValueList.at(1);
|
||||||
QString defaultUnderloadPacketMagicHeader = headersValueList.at(2);
|
QString underloadPacketMagicHeader = headersValueList.at(2);
|
||||||
QString defaultTransportPacketMagicHeader = headersValueList.at(3);
|
QString transportPacketMagicHeader = headersValueList.at(3);
|
||||||
|
|
||||||
containerConfig[config_key::junkPacketCount] = defaultJunkPacketCount;
|
containerConfig[config_key::junkPacketCount] = junkPacketCount;
|
||||||
containerConfig[config_key::junkPacketMinSize] = defaultJunkPacketMinSize;
|
containerConfig[config_key::junkPacketMinSize] = junkPacketMinSize;
|
||||||
containerConfig[config_key::junkPacketMaxSize] = defaultJunkPacketMaxSize;
|
containerConfig[config_key::junkPacketMaxSize] = junkPacketMaxSize;
|
||||||
containerConfig[config_key::initPacketJunkSize] = defaultInitPacketJunkSize;
|
containerConfig[config_key::initPacketJunkSize] = initPacketJunkSize;
|
||||||
containerConfig[config_key::responsePacketJunkSize] = defaultResponsePacketJunkSize;
|
containerConfig[config_key::responsePacketJunkSize] = responsePacketJunkSize;
|
||||||
containerConfig[config_key::initPacketMagicHeader] = defaultInitPacketMagicHeader;
|
containerConfig[config_key::initPacketMagicHeader] = initPacketMagicHeader;
|
||||||
containerConfig[config_key::responsePacketMagicHeader] = defaultResponsePacketMagicHeader;
|
containerConfig[config_key::responsePacketMagicHeader] = responsePacketMagicHeader;
|
||||||
containerConfig[config_key::underloadPacketMagicHeader] = defaultUnderloadPacketMagicHeader;
|
containerConfig[config_key::underloadPacketMagicHeader] = underloadPacketMagicHeader;
|
||||||
containerConfig[config_key::transportPacketMagicHeader] = defaultTransportPacketMagicHeader;
|
containerConfig[config_key::transportPacketMagicHeader] = transportPacketMagicHeader;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (container == DockerContainer::Sftp) {
|
if (container == DockerContainer::Sftp) {
|
||||||
|
|
|
@ -224,7 +224,7 @@ PageType {
|
||||||
if (ProtocolProps.defaultPort(defaultContainerProto) < 0) {
|
if (ProtocolProps.defaultPort(defaultContainerProto) < 0) {
|
||||||
port.visible = false
|
port.visible = false
|
||||||
} else {
|
} else {
|
||||||
port.textFieldText = ProtocolProps.defaultPort(defaultContainerProto)
|
port.textFieldText = ProtocolProps.getPortForInstall(defaultContainerProto)
|
||||||
}
|
}
|
||||||
transportProtoSelector.currentIndex = ProtocolProps.defaultTransportProto(defaultContainerProto)
|
transportProtoSelector.currentIndex = ProtocolProps.defaultTransportProto(defaultContainerProto)
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue