58 lines
2.9 KiB
Python
58 lines
2.9 KiB
Python
from jinja2 import Environment, FileSystemLoader
|
||
|
||
# 1. 定义你的客制化参数字典
|
||
config_vars = {
|
||
# 全局/网关主机变量
|
||
"gateway_main_interface": "eth0", # !!! 网关云主机的主网卡名称,请根据实际情况修改!
|
||
"internal_network_range": "192.168.16.0/24", # !!! 你的云平台私有网络IP范围,例如 10.0.0.0/16, 172.16.0.0/12, 192.168.0.0/16
|
||
|
||
# SSH SOCKS5 代理配置
|
||
"remote_ssh_user": "ocaiuser", # !!! 替换为你的远程SSH服务器用户名
|
||
"remote_ssh_ip": "opencomputing.ai", # !!! 替换为你的远程SSH服务器IP
|
||
"remote_ssh_port": "22",
|
||
|
||
# 其他默认值,通常无需修改
|
||
"local_socks5_port": "1086",
|
||
"redsocks_port": "12345",
|
||
"domestic_dns": "223.5.5.5,114.114.114.114",
|
||
"foreign_dns": "8.8.8.8,1.1.1.1",
|
||
"gfwlist2new_repo": "https://github.com/cokebar/gfwlist2dnsmasq_python.git",
|
||
"gfwlist2new_dir": "/opt/gfwlist2new",
|
||
}
|
||
|
||
# 2. 设置 Jinja2 环境
|
||
env = Environment(loader=FileSystemLoader('.'))
|
||
|
||
# 3. 渲染 gateway_config.sh
|
||
gateway_template = env.get_template('gateway_config.sh.j2')
|
||
rendered_gateway_script = gateway_template.render(config_vars)
|
||
|
||
with open('gateway_config.sh', 'w') as f:
|
||
f.write(rendered_gateway_script)
|
||
print("Generated gateway_config.sh for Cloud Server Environment.")
|
||
|
||
# 4. 提供内网主机配置说明
|
||
print("\n--- 内网云主机配置说明 ---")
|
||
print("内网云主机无需运行任何脚本!它们会从云平台 DHCP 获取 IP 和默认网关。")
|
||
print("\n您唯一需要做的是:")
|
||
print("1. 确保内网云主机的网卡 (例如 {{ config_vars['client_main_interface'] | default('ens5') }}) 是 DHCP 客户端模式 (云平台默认)。")
|
||
print("2. **最关键的步骤:将内网云主机的 DNS 服务器设置为网关云主机的内网 IP。**")
|
||
print(" - 这通常通过云平台的管理控制台进行配置,或者在内网云主机上手动修改 Netplan。")
|
||
print(" - 例如,如果网关云主机的内网 IP 是 10.0.0.10,则内网云主机的 DNS 应该设置为 10.0.0.10。")
|
||
print("\n 示例 Netplan 配置 (内网云主机,如果需要手动修改):")
|
||
print(f" network:")
|
||
print(f" version: 2")
|
||
print(f" renderer: networkd")
|
||
print(f" ethernets:")
|
||
print(f" {{ config_vars['client_main_interface'] | default('ens5') }}: # 替换为内网主机的实际网卡名称")
|
||
print(f" dhcp4: true")
|
||
print(f" nameservers:")
|
||
print(f" addresses: [{{ config_vars['gateway_lan_ip'] }}] # DNS 指向网关云主机的内网 IP")
|
||
print(f" optional: true")
|
||
print("\n 修改后,应用 Netplan 配置:sudo netplan try && sudo netplan apply")
|
||
print(" 或者重启内网云主机。")
|
||
print("--------------------------")
|
||
|
||
print("\n!!! 请务必检查生成的 gateway_config.sh 文件,特别是 SSH 代理、网卡名称和云平台私有网络范围等配置。")
|
||
print("在执行前,给它添加可执行权限:chmod +x gateway_config.sh")
|