* [PATCH proxmox{,-backup} 0/4] fix #3723: allow using node http proxy for remote connections
@ 2026-02-11 16:18 Christian Ebner
2026-02-11 16:18 ` [PATCH proxmox 1/1] pbs-api-types: remote: add flag to use node proxy for remote connect Christian Ebner
` (3 more replies)
0 siblings, 4 replies; 5+ messages in thread
From: Christian Ebner @ 2026-02-11 16:18 UTC (permalink / raw)
To: pbs-devel
These patches allow setting a boolean flag on a remote's
configuration to control whether or not to use the http proxy
settings of the Proxmox Backup Server node for the connection.
The default remains to not use the node's proxy, guaranteeing full
backwards compatibility. If no http proxy is configured, the flag has
no effect and no proxy will be used.
Currently it is only possible to set a custom per-remote proxy
setting, which can however be easily added on-demand.
Note:
Testing was performed using https://www.mitmproxy.org/
Fingerprint on the PBS remote must then match the one provided by
the proxy, the proxy must be started with `--ssl-insecure` if
self-signed certificates are use on the remote.
Link to the issue in the bugtracker:
https://bugzilla.proxmox.com/show_bug.cgi?id=3723
proxmox:
Christian Ebner (1):
pbs-api-types: remote: add flag to use node proxy for remote connect
pbs-api-types/src/remote.rs | 14 ++++++++++++++
1 file changed, 14 insertions(+)
proxmox-backup:
Christian Ebner (3):
http client: use http proxy from client options if set
fix #3723: api: remote: optionally use node proxy config for http
client
ui: expose flag to use node's http proxy in remote edit window
pbs-client/src/http_client.rs | 9 +++++++++
src/api2/config/remote.rs | 13 +++++++++++++
src/config/node.rs | 5 +++++
www/window/RemoteEdit.js | 19 +++++++++++++++++++
4 files changed, 46 insertions(+)
Summary over all repositories:
5 files changed, 60 insertions(+), 0 deletions(-)
--
Generated by murpp 0.9.0
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH proxmox 1/1] pbs-api-types: remote: add flag to use node proxy for remote connect
2026-02-11 16:18 [PATCH proxmox{,-backup} 0/4] fix #3723: allow using node http proxy for remote connections Christian Ebner
@ 2026-02-11 16:18 ` Christian Ebner
2026-02-11 16:18 ` [PATCH proxmox-backup 1/3] http client: use http proxy from client options if set Christian Ebner
` (2 subsequent siblings)
3 siblings, 0 replies; 5+ messages in thread
From: Christian Ebner @ 2026-02-11 16:18 UTC (permalink / raw)
To: pbs-devel
Introduces the `use-node-proxy` flag in the remote config and the
corresponding boolean API schema. Setting this flag will allow users
to enable using the node's http proxy config for remote connections.
Defaults to false for backwards compatibility.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
---
pbs-api-types/src/remote.rs | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/pbs-api-types/src/remote.rs b/pbs-api-types/src/remote.rs
index 29d41e87..6a21345a 100644
--- a/pbs-api-types/src/remote.rs
+++ b/pbs-api-types/src/remote.rs
@@ -1,5 +1,7 @@
use serde::{Deserialize, Serialize};
+use proxmox_schema::BooleanSchema;
+
use super::*;
pub const REMOTE_PASSWORD_SCHEMA: Schema =
@@ -22,6 +24,12 @@ pub const REMOTE_ID_SCHEMA: Schema = StringSchema::new("Remote ID.")
.max_length(32)
.schema();
+pub const USE_NODE_HTTP_PROXY_SCHEMA: Schema = BooleanSchema::new(
+ "Use the http proxy configuration of the node for remote connections.",
+)
+.default(false)
+.schema();
+
#[api(
properties: {
comment: {
@@ -43,6 +51,10 @@ pub const REMOTE_ID_SCHEMA: Schema = StringSchema::new("Remote ID.")
optional: true,
schema: CERT_FINGERPRINT_SHA256_SCHEMA,
},
+ "use-node-proxy": {
+ optional: true,
+ schema: USE_NODE_HTTP_PROXY_SCHEMA,
+ },
},
)]
#[derive(Serialize, Deserialize, Updater, Clone, PartialEq)]
@@ -57,6 +69,8 @@ pub struct RemoteConfig {
pub auth_id: Authid,
#[serde(skip_serializing_if = "Option::is_none")]
pub fingerprint: Option<String>,
+ #[serde(skip_serializing_if = "Option::is_none")]
+ pub use_node_proxy: Option<bool>,
}
#[api(
--
2.47.3
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH proxmox-backup 1/3] http client: use http proxy from client options if set
2026-02-11 16:18 [PATCH proxmox{,-backup} 0/4] fix #3723: allow using node http proxy for remote connections Christian Ebner
2026-02-11 16:18 ` [PATCH proxmox 1/1] pbs-api-types: remote: add flag to use node proxy for remote connect Christian Ebner
@ 2026-02-11 16:18 ` Christian Ebner
2026-02-11 16:18 ` [PATCH proxmox-backup 2/3] fix #3723: api: remote: optionally use node proxy config for http client Christian Ebner
2026-02-11 16:18 ` [PATCH proxmox-backup 3/3] ui: expose flag to use node's http proxy in remote edit window Christian Ebner
3 siblings, 0 replies; 5+ messages in thread
From: Christian Ebner @ 2026-02-11 16:18 UTC (permalink / raw)
To: pbs-devel
The client already supports reading the proxy config from the env
variables, now it is also possible to specify it as optional
parameter via the http client options.
For backwards compatibility always use the env variable proxy setting
over the http client option.
To be used for setting the http proxy on remotes for sync jobs.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
---
pbs-client/src/http_client.rs | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/pbs-client/src/http_client.rs b/pbs-client/src/http_client.rs
index 4730db8d1..43f9a3367 100644
--- a/pbs-client/src/http_client.rs
+++ b/pbs-client/src/http_client.rs
@@ -134,6 +134,7 @@ pub struct HttpClientOptions {
fingerprint_cache: bool,
verify_cert: bool,
limit: RateLimitConfig,
+ proxy: Option<ProxyConfig>,
}
impl HttpClientOptions {
@@ -196,6 +197,11 @@ impl HttpClientOptions {
self.limit = rate_limit;
self
}
+
+ pub fn proxy(mut self, proxy: Option<ProxyConfig>) -> Self {
+ self.proxy = proxy;
+ self
+ }
}
impl Default for HttpClientOptions {
@@ -209,6 +215,7 @@ impl Default for HttpClientOptions {
fingerprint_cache: false,
verify_cert: true,
limit: RateLimitConfig::default(), // unlimited
+ proxy: None,
}
}
}
@@ -479,6 +486,8 @@ impl HttpClient {
}
let proxy_config = ProxyConfig::from_proxy_env()?;
+ let proxy_config = proxy_config.or(options.proxy.clone());
+
if let Some(config) = proxy_config {
info!("Using proxy connection: {}:{}", config.host, config.port);
https.set_proxy(config);
--
2.47.3
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH proxmox-backup 2/3] fix #3723: api: remote: optionally use node proxy config for http client
2026-02-11 16:18 [PATCH proxmox{,-backup} 0/4] fix #3723: allow using node http proxy for remote connections Christian Ebner
2026-02-11 16:18 ` [PATCH proxmox 1/1] pbs-api-types: remote: add flag to use node proxy for remote connect Christian Ebner
2026-02-11 16:18 ` [PATCH proxmox-backup 1/3] http client: use http proxy from client options if set Christian Ebner
@ 2026-02-11 16:18 ` Christian Ebner
2026-02-11 16:18 ` [PATCH proxmox-backup 3/3] ui: expose flag to use node's http proxy in remote edit window Christian Ebner
3 siblings, 0 replies; 5+ messages in thread
From: Christian Ebner @ 2026-02-11 16:18 UTC (permalink / raw)
To: pbs-devel
Allow to use the node's http proxy config if the new `use-node-proxy`
flag is set in the remote config. If ever required, it is still
possible to extend this to allow for custom proxy settings on the
remote.
Fixes: https://bugzilla.proxmox.com/show_bug.cgi?id=3723
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
---
src/api2/config/remote.rs | 13 +++++++++++++
src/config/node.rs | 5 +++++
2 files changed, 18 insertions(+)
diff --git a/src/api2/config/remote.rs b/src/api2/config/remote.rs
index 0a0996e25..1996ee91b 100644
--- a/src/api2/config/remote.rs
+++ b/src/api2/config/remote.rs
@@ -142,6 +142,8 @@ pub enum DeletableProperty {
Fingerprint,
/// Delete the port property.
Port,
+ /// Delete the use_node_proxy property.
+ UseNodeProxy,
}
#[api(
@@ -209,6 +211,9 @@ pub fn update_remote(
DeletableProperty::Port => {
data.config.port = None;
}
+ DeletableProperty::UseNodeProxy => {
+ data.config.use_node_proxy = None;
+ }
}
}
}
@@ -238,6 +243,10 @@ pub fn update_remote(
data.config.fingerprint = update.fingerprint;
}
+ if update.use_node_proxy.is_some() {
+ data.config.use_node_proxy = update.use_node_proxy;
+ }
+
config.set_data(&name, "remote", &data)?;
pbs_config::remote::save_config(&config)?;
@@ -310,6 +319,10 @@ pub fn remote_client_config(
if let Some(limit) = limit {
options = options.rate_limit(limit);
}
+ if remote.config.use_node_proxy.unwrap_or(false) {
+ let proxy = crate::config::node::node_http_proxy_config()?;
+ options = options.proxy(proxy);
+ }
let client = HttpClient::new(
&remote.config.host,
diff --git a/src/config/node.rs b/src/config/node.rs
index 81eecb247..a79bf5707 100644
--- a/src/config/node.rs
+++ b/src/config/node.rs
@@ -309,3 +309,8 @@ impl Iterator for AcmeDomainIter<'_> {
))
}
}
+
+pub(crate) fn node_http_proxy_config() -> Result<Option<ProxyConfig>, Error> {
+ let (node_config, _digest) = self::config()?;
+ Ok(node_config.http_proxy())
+}
--
2.47.3
^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH proxmox-backup 3/3] ui: expose flag to use node's http proxy in remote edit window
2026-02-11 16:18 [PATCH proxmox{,-backup} 0/4] fix #3723: allow using node http proxy for remote connections Christian Ebner
` (2 preceding siblings ...)
2026-02-11 16:18 ` [PATCH proxmox-backup 2/3] fix #3723: api: remote: optionally use node proxy config for http client Christian Ebner
@ 2026-02-11 16:18 ` Christian Ebner
3 siblings, 0 replies; 5+ messages in thread
From: Christian Ebner @ 2026-02-11 16:18 UTC (permalink / raw)
To: pbs-devel
Allows to set/clear the flag to enable using the node http proxy
config for given remote config. Place in the advanced settings to not
intrude in current remote edit window layout to much.
Defaults to not being set, clear from config if unset to avoid config
bloating.
Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
---
www/window/RemoteEdit.js | 19 +++++++++++++++++++
1 file changed, 19 insertions(+)
diff --git a/www/window/RemoteEdit.js b/www/window/RemoteEdit.js
index 9e8353ff8..e9ce709f0 100644
--- a/www/window/RemoteEdit.js
+++ b/www/window/RemoteEdit.js
@@ -128,6 +128,21 @@ Ext.define('PBS.window.RemoteEdit', {
fieldLabel: gettext('Comment'),
},
],
+ advancedColumn1: [
+ {
+ xtype: 'proxmoxcheckbox',
+ fieldLabel: gettext("Use node proxy"),
+ name: 'use-node-proxy',
+ autoEl: {
+ tag: 'div',
+ 'data-qtip': gettext(
+ "Use the node's http proxy configuration for remote connections.",
+ ),
+ },
+ uncheckedValue: false,
+ value: false,
+ },
+ ],
},
setValues: function (values) {
@@ -153,6 +168,10 @@ Ext.define('PBS.window.RemoteEdit', {
delete values.password;
}
+ if (!me.isCreate) {
+ PBS.Utils.delete_if_default(values, 'use-node-proxy', false);
+ }
+
return values;
},
});
--
2.47.3
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-02-11 16:18 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-02-11 16:18 [PATCH proxmox{,-backup} 0/4] fix #3723: allow using node http proxy for remote connections Christian Ebner
2026-02-11 16:18 ` [PATCH proxmox 1/1] pbs-api-types: remote: add flag to use node proxy for remote connect Christian Ebner
2026-02-11 16:18 ` [PATCH proxmox-backup 1/3] http client: use http proxy from client options if set Christian Ebner
2026-02-11 16:18 ` [PATCH proxmox-backup 2/3] fix #3723: api: remote: optionally use node proxy config for http client Christian Ebner
2026-02-11 16:18 ` [PATCH proxmox-backup 3/3] ui: expose flag to use node's http proxy in remote edit window Christian Ebner
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.