Merge pull request #123 from amnezia-vpn/openvpn_addditional_configs
OpenVPN additional config
This commit is contained in:
commit
b62d0697be
11 changed files with 43 additions and 4 deletions
|
@ -662,6 +662,11 @@ ServerController::Vars ServerController::genVarsForScript(const ServerCredential
|
||||||
vars.append({{"$OPENVPN_TA_KEY", "" }});
|
vars.append({{"$OPENVPN_TA_KEY", "" }});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
vars.append({{"$OPENVPN_ADDITIONAL_CLIENT_CONFIG", openvpnConfig.value(config_key::additional_client_config).
|
||||||
|
toString(protocols::openvpn::defaultAdditionalClientConfig) }});
|
||||||
|
vars.append({{"$OPENVPN_ADDITIONAL_SERVER_CONFIG", openvpnConfig.value(config_key::additional_server_config).
|
||||||
|
toString(protocols::openvpn::defaultAdditionalServerConfig) }});
|
||||||
|
|
||||||
// ShadowSocks vars
|
// ShadowSocks vars
|
||||||
vars.append({{"$SHADOWSOCKS_SERVER_PORT", ssConfig.value(config_key::port).toString(protocols::shadowsocks::defaultPort) }});
|
vars.append({{"$SHADOWSOCKS_SERVER_PORT", ssConfig.value(config_key::port).toString(protocols::shadowsocks::defaultPort) }});
|
||||||
vars.append({{"$SHADOWSOCKS_LOCAL_PORT", ssConfig.value(config_key::local_port).toString(protocols::shadowsocks::defaultLocalProxyPort) }});
|
vars.append({{"$SHADOWSOCKS_LOCAL_PORT", ssConfig.value(config_key::local_port).toString(protocols::shadowsocks::defaultLocalProxyPort) }});
|
||||||
|
|
|
@ -53,6 +53,9 @@ constexpr char subnet_address[] = "subnet_address";
|
||||||
constexpr char subnet_mask[] = "subnet_mask";
|
constexpr char subnet_mask[] = "subnet_mask";
|
||||||
constexpr char subnet_cidr[] = "subnet_cidr";
|
constexpr char subnet_cidr[] = "subnet_cidr";
|
||||||
|
|
||||||
|
constexpr char additional_client_config[] = "additional_client_config";
|
||||||
|
constexpr char additional_server_config[] = "additional_server_config";
|
||||||
|
|
||||||
// proto config keys
|
// proto config keys
|
||||||
constexpr char last_config[] = "last_config";
|
constexpr char last_config[] = "last_config";
|
||||||
}
|
}
|
||||||
|
@ -82,6 +85,8 @@ constexpr bool defaultTlsAuth = true;
|
||||||
constexpr char ncpDisableString[] = "ncp-disable";
|
constexpr char ncpDisableString[] = "ncp-disable";
|
||||||
constexpr char tlsAuthString[] = "tls-auth /opt/amnezia/openvpn/ta.key 0";
|
constexpr char tlsAuthString[] = "tls-auth /opt/amnezia/openvpn/ta.key 0";
|
||||||
|
|
||||||
|
constexpr char defaultAdditionalClientConfig[] = "";
|
||||||
|
constexpr char defaultAdditionalServerConfig[] = "";
|
||||||
}
|
}
|
||||||
|
|
||||||
namespace shadowsocks {
|
namespace shadowsocks {
|
||||||
|
|
|
@ -23,4 +23,5 @@ verb 1
|
||||||
tls-server
|
tls-server
|
||||||
tls-version-min 1.2
|
tls-version-min 1.2
|
||||||
$OPENVPN_TLS_AUTH
|
$OPENVPN_TLS_AUTH
|
||||||
|
$OPENVPN_ADDITIONAL_SERVER_CONFIG
|
||||||
EOF
|
EOF
|
||||||
|
|
|
@ -21,6 +21,8 @@ block-outside-dns
|
||||||
|
|
||||||
remote $REMOTE_HOST $OPENVPN_PORT
|
remote $REMOTE_HOST $OPENVPN_PORT
|
||||||
|
|
||||||
|
$OPENVPN_ADDITIONAL_CLIENT_CONFIG
|
||||||
|
|
||||||
<ca>
|
<ca>
|
||||||
$OPENVPN_CA_CERT
|
$OPENVPN_CA_CERT
|
||||||
</ca>
|
</ca>
|
||||||
|
|
|
@ -23,6 +23,7 @@ verb 1
|
||||||
tls-server
|
tls-server
|
||||||
tls-version-min 1.2
|
tls-version-min 1.2
|
||||||
$OPENVPN_TLS_AUTH
|
$OPENVPN_TLS_AUTH
|
||||||
|
$OPENVPN_ADDITIONAL_SERVER_CONFIG
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# Cloak config
|
# Cloak config
|
||||||
|
|
|
@ -22,6 +22,8 @@ block-outside-dns
|
||||||
route $REMOTE_HOST 255.255.255.255 net_gateway
|
route $REMOTE_HOST 255.255.255.255 net_gateway
|
||||||
remote 127.0.0.1 1194
|
remote 127.0.0.1 1194
|
||||||
|
|
||||||
|
$OPENVPN_ADDITIONAL_CLIENT_CONFIG
|
||||||
|
|
||||||
<ca>
|
<ca>
|
||||||
$OPENVPN_CA_CERT
|
$OPENVPN_CA_CERT
|
||||||
</ca>
|
</ca>
|
||||||
|
|
|
@ -23,6 +23,7 @@ verb 1
|
||||||
tls-server
|
tls-server
|
||||||
tls-version-min 1.2
|
tls-version-min 1.2
|
||||||
$OPENVPN_TLS_AUTH
|
$OPENVPN_TLS_AUTH
|
||||||
|
$OPENVPN_ADDITIONAL_SERVER_CONFIG
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# ShadowSocks config
|
# ShadowSocks config
|
||||||
|
|
|
@ -23,6 +23,8 @@ socks-proxy 127.0.0.1 $SHADOWSOCKS_LOCAL_PORT
|
||||||
route $REMOTE_HOST 255.255.255.255 net_gateway
|
route $REMOTE_HOST 255.255.255.255 net_gateway
|
||||||
remote $REMOTE_HOST $OPENVPN_PORT
|
remote $REMOTE_HOST $OPENVPN_PORT
|
||||||
|
|
||||||
|
$OPENVPN_ADDITIONAL_CLIENT_CONFIG
|
||||||
|
|
||||||
<ca>
|
<ca>
|
||||||
$OPENVPN_CA_CERT
|
$OPENVPN_CA_CERT
|
||||||
</ca>
|
</ca>
|
||||||
|
|
|
@ -21,6 +21,8 @@ OpenVpnLogic::OpenVpnLogic(UiLogic *logic, QObject *parent):
|
||||||
m_checkBoxBlockDnsChecked{false},
|
m_checkBoxBlockDnsChecked{false},
|
||||||
m_lineEditPortText{},
|
m_lineEditPortText{},
|
||||||
m_checkBoxTlsAuthChecked{false},
|
m_checkBoxTlsAuthChecked{false},
|
||||||
|
m_textAreaAdditionalClientConfig{""},
|
||||||
|
m_textAreaAdditionalServerConfig{""},
|
||||||
m_pushButtonSaveVisible{false},
|
m_pushButtonSaveVisible{false},
|
||||||
m_progressBarResetVisible{false},
|
m_progressBarResetVisible{false},
|
||||||
|
|
||||||
|
@ -67,6 +69,14 @@ void OpenVpnLogic::updateProtocolPage(const QJsonObject &openvpnConfig, DockerCo
|
||||||
bool isTlsAuth = openvpnConfig.value(config_key::tls_auth).toBool(protocols::openvpn::defaultTlsAuth);
|
bool isTlsAuth = openvpnConfig.value(config_key::tls_auth).toBool(protocols::openvpn::defaultTlsAuth);
|
||||||
set_checkBoxTlsAuthChecked(isTlsAuth);
|
set_checkBoxTlsAuthChecked(isTlsAuth);
|
||||||
|
|
||||||
|
QString additionalClientConfig = openvpnConfig.value(config_key::additional_client_config).
|
||||||
|
toString(protocols::openvpn::defaultAdditionalClientConfig);
|
||||||
|
set_textAreaAdditionalClientConfig(additionalClientConfig);
|
||||||
|
|
||||||
|
QString additionalServerConfig = openvpnConfig.value(config_key::additional_server_config).
|
||||||
|
toString(protocols::openvpn::defaultAdditionalServerConfig);
|
||||||
|
set_textAreaAdditionalServerConfig(additionalServerConfig);
|
||||||
|
|
||||||
if (container == DockerContainer::ShadowSocks) {
|
if (container == DockerContainer::ShadowSocks) {
|
||||||
set_radioButtonUdpEnabled(false);
|
set_radioButtonUdpEnabled(false);
|
||||||
set_radioButtonTcpEnabled(false);
|
set_radioButtonTcpEnabled(false);
|
||||||
|
@ -142,5 +152,7 @@ QJsonObject OpenVpnLogic::getProtocolConfigFromPage(QJsonObject oldConfig)
|
||||||
oldConfig.insert(config_key::block_outside_dns, checkBoxBlockDnsChecked());
|
oldConfig.insert(config_key::block_outside_dns, checkBoxBlockDnsChecked());
|
||||||
oldConfig.insert(config_key::port, lineEditPortText());
|
oldConfig.insert(config_key::port, lineEditPortText());
|
||||||
oldConfig.insert(config_key::tls_auth, checkBoxTlsAuthChecked());
|
oldConfig.insert(config_key::tls_auth, checkBoxTlsAuthChecked());
|
||||||
|
oldConfig.insert(config_key::additional_client_config, textAreaAdditionalClientConfig());
|
||||||
|
oldConfig.insert(config_key::additional_server_config, textAreaAdditionalServerConfig());
|
||||||
return oldConfig;
|
return oldConfig;
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,6 +22,8 @@ class OpenVpnLogic : public PageProtocolLogicBase
|
||||||
AUTO_PROPERTY(bool, checkBoxBlockDnsChecked)
|
AUTO_PROPERTY(bool, checkBoxBlockDnsChecked)
|
||||||
AUTO_PROPERTY(QString, lineEditPortText)
|
AUTO_PROPERTY(QString, lineEditPortText)
|
||||||
AUTO_PROPERTY(bool, checkBoxTlsAuthChecked)
|
AUTO_PROPERTY(bool, checkBoxTlsAuthChecked)
|
||||||
|
AUTO_PROPERTY(QString, textAreaAdditionalClientConfig)
|
||||||
|
AUTO_PROPERTY(QString, textAreaAdditionalServerConfig)
|
||||||
|
|
||||||
AUTO_PROPERTY(bool, pushButtonSaveVisible)
|
AUTO_PROPERTY(bool, pushButtonSaveVisible)
|
||||||
AUTO_PROPERTY(bool, progressBarResetVisible)
|
AUTO_PROPERTY(bool, progressBarResetVisible)
|
||||||
|
|
|
@ -281,7 +281,10 @@ PageProtocolBase {
|
||||||
font.styleName: "normal"
|
font.styleName: "normal"
|
||||||
font.pixelSize: 16
|
font.pixelSize: 16
|
||||||
color: "#181922"
|
color: "#181922"
|
||||||
|
text: logic.textAreaAdditionalClientConfig
|
||||||
|
onEditingFinished: {
|
||||||
|
logic.textAreaAdditionalClientConfig = text
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -294,7 +297,7 @@ PageProtocolBase {
|
||||||
|
|
||||||
implicitWidth: parent.width
|
implicitWidth: parent.width
|
||||||
height: 21
|
height: 21
|
||||||
text: qsTr("Additional client config commands →")
|
text: qsTr("Additional server config commands →")
|
||||||
background: Item {
|
background: Item {
|
||||||
anchors.fill: parent
|
anchors.fill: parent
|
||||||
}
|
}
|
||||||
|
@ -305,7 +308,7 @@ PageProtocolBase {
|
||||||
font.styleName: "normal"
|
font.styleName: "normal"
|
||||||
font.pixelSize: 16
|
font.pixelSize: 16
|
||||||
color: "#15CDCB";
|
color: "#15CDCB";
|
||||||
text: pb_client_config.text
|
text: pb_server_config.text
|
||||||
horizontalAlignment: Text.AlignLeft
|
horizontalAlignment: Text.AlignLeft
|
||||||
verticalAlignment: Text.AlignVCenter
|
verticalAlignment: Text.AlignVCenter
|
||||||
}
|
}
|
||||||
|
@ -331,7 +334,10 @@ PageProtocolBase {
|
||||||
font.styleName: "normal"
|
font.styleName: "normal"
|
||||||
font.pixelSize: 16
|
font.pixelSize: 16
|
||||||
color: "#181922"
|
color: "#181922"
|
||||||
|
text: logic.textAreaAdditionalServerConfig
|
||||||
|
onEditingFinished: {
|
||||||
|
logic.textAreaAdditionalServerConfig = text
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue