Compare commits
2
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2aeb327638 | ||
|
|
717b7569de |
@@ -88,6 +88,8 @@ def _load_nodes():
|
|||||||
if not isinstance(data, list):
|
if not isinstance(data, list):
|
||||||
raise ValueError("nodes.json 顶层应为节点数组")
|
raise ValueError("nodes.json 顶层应为节点数组")
|
||||||
_NODES = data
|
_NODES = data
|
||||||
|
if not _SELECTED_RESTORED:
|
||||||
|
_restore_selected_node(_NODES) # 恢复上次使用的节点
|
||||||
log(f"已加载节点配置: {len(_NODES)} 个 ({path})")
|
log(f"已加载节点配置: {len(_NODES)} 个 ({path})")
|
||||||
if data and not str(data[0].get("domain") or "").strip():
|
if data and not str(data[0].get("domain") or "").strip():
|
||||||
log_red("节点未填写域名:请配置 config.json 的 nodes_url 在线更新,"
|
log_red("节点未填写域名:请配置 config.json 的 nodes_url 在线更新,"
|
||||||
@@ -97,6 +99,7 @@ def _load_nodes():
|
|||||||
return _NODES
|
return _NODES
|
||||||
|
|
||||||
_SELECTED_NODE = 0 # 当前选中节点下标(默认第一条)
|
_SELECTED_NODE = 0 # 当前选中节点下标(默认第一条)
|
||||||
|
_SELECTED_RESTORED = False # 启动时是否已按设置恢复过上次选中的节点
|
||||||
|
|
||||||
def _current_node():
|
def _current_node():
|
||||||
"""当前使用的节点:默认取列表第一个;无节点时返回 None。"""
|
"""当前使用的节点:默认取列表第一个;无节点时返回 None。"""
|
||||||
@@ -121,8 +124,26 @@ def _switch_node(index):
|
|||||||
log("已在当前节点")
|
log("已在当前节点")
|
||||||
return False
|
return False
|
||||||
_SELECTED_NODE = index
|
_SELECTED_NODE = index
|
||||||
|
_save_current_node(nodes[index].get("domain") or "") # 记录到设置,下次启动恢复
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
def _restore_selected_node(nodes):
|
||||||
|
"""首次加载时按设置里记录的 current_node(域名)恢复上次选中的节点。"""
|
||||||
|
global _SELECTED_NODE, _SELECTED_RESTORED
|
||||||
|
_SELECTED_RESTORED = True
|
||||||
|
saved = str(_settings_load().get("current_node") or "")
|
||||||
|
for i, n in enumerate(nodes):
|
||||||
|
if saved and str(n.get("domain") or "") == saved:
|
||||||
|
_SELECTED_NODE = i
|
||||||
|
return
|
||||||
|
_SELECTED_NODE = 0
|
||||||
|
|
||||||
|
def _save_current_node(domain):
|
||||||
|
"""把当前选中节点域名写入设置文件(下次启动自动继续使用)。"""
|
||||||
|
data = _settings_load()
|
||||||
|
data["current_node"] = str(domain or "")
|
||||||
|
_settings_save(data)
|
||||||
|
|
||||||
def _reload_nodes():
|
def _reload_nodes():
|
||||||
"""强制重新读取 nodes.json(菜单打开时调用,外部改动即时生效)。"""
|
"""强制重新读取 nodes.json(菜单打开时调用,外部改动即时生效)。"""
|
||||||
global _NODES
|
global _NODES
|
||||||
|
|||||||
@@ -56,15 +56,14 @@ http {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# 443 端口:iam.aeolianchi.me HTTPS 站点 + 认证 CONNECT 代理
|
|
||||||
server {
|
server {
|
||||||
listen 443 ssl;
|
listen 443 ssl;
|
||||||
http2 on;
|
http2 on;
|
||||||
server_name iam.aeolianchi.me;
|
server_name XXX;
|
||||||
root /var/www/html;
|
root /var/www/html;
|
||||||
|
|
||||||
ssl_certificate /etc/nginx/ssl/iam.aeolianchi.me/fullchain.pem;
|
ssl_certificate /etc/nginx/ssl/XXX/fullchain.pem;
|
||||||
ssl_certificate_key /etc/nginx/ssl/iam.aeolianchi.me/privkey.pem;
|
ssl_certificate_key /etc/nginx/ssl/XXX/privkey.pem;
|
||||||
ssl_protocols TLSv1.2 TLSv1.3;
|
ssl_protocols TLSv1.2 TLSv1.3;
|
||||||
ssl_ciphers HIGH:!aNULL:!MD5;
|
ssl_ciphers HIGH:!aNULL:!MD5;
|
||||||
ssl_session_cache shared:SSL:10m;
|
ssl_session_cache shared:SSL:10m;
|
||||||
|
|||||||
Reference in New Issue
Block a user