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")