|
7 | 7 | "golang.org/x/crypto/ssh" |
8 | 8 | "io" |
9 | 9 | "os" |
| 10 | + "strings" |
10 | 11 | ) |
11 | 12 |
|
12 | 13 | type ScutInfo struct { |
@@ -171,6 +172,68 @@ func (s *SSHClass) RunAutoLogin() { |
171 | 172 | s.RunCommand(cmd) |
172 | 173 | } |
173 | 174 |
|
| 175 | +func (s *SSHClass) RunSetNetwork(ip string, dnsArr string, netmask, gateway string) { |
| 176 | + log.Info("RunSetNetwork is called") |
| 177 | + |
| 178 | + log.Info("Set interface wan") |
| 179 | + if1 := "/etc/config/network.wan." // 接口wan |
| 180 | + cmd := fmt.Sprintf("uci set %sproto=static", if1) |
| 181 | + cmd += fmt.Sprintf(" && uci set %sipaddr=%s", if1, ip) |
| 182 | + cmd += fmt.Sprintf(" && uci set %snetmask=%s", if1, netmask) |
| 183 | + cmd += fmt.Sprintf(" && uci set %sgateway=%s", if1, gateway) |
| 184 | + |
| 185 | + log.Info(fmt.Sprintf("DNS列表:%s", dnsArr)) |
| 186 | + dns := strings.Split(dnsArr, " ") |
| 187 | + dnsConcat := "" |
| 188 | + for _, dnsItem := range dns { |
| 189 | + dnsConcat += dnsItem |
| 190 | + dnsConcat += " " |
| 191 | + } |
| 192 | + dnsConcat = "'" + dnsConcat[:len(dnsConcat)-1] + "'" // 裁剪最后一个空格 |
| 193 | + cmd += fmt.Sprintf(" && uci set %sdns=%s", if1, dnsConcat) |
| 194 | + |
| 195 | + log.Info("Set interface wan6") |
| 196 | + // 增加 interface wan6 选项 |
| 197 | + cmd += fmt.Sprintf(" && uci set /etc/config/network.wan6=interface") |
| 198 | + |
| 199 | + if2 := "/etc/config/network.wan6." // 接口wan6 |
| 200 | + cmd += fmt.Sprintf(" && uci set %sproto=dhcpv6", if2) |
| 201 | + cmd += fmt.Sprintf(" && uci set %sreqaddress=try", if2) |
| 202 | + cmd += fmt.Sprintf(" && uci set %sreqprefix=auto", if2) |
| 203 | + cmd += fmt.Sprintf(" && uci set %speerdns=0", if2) |
| 204 | + cmd += fmt.Sprintf(" && uci set %sdns=%s", if2, "'2400:3200::1 2400:3200:baba::1'") |
| 205 | + |
| 206 | + log.Info("Set dhcp lan") |
| 207 | + if3 := "/etc/config/dhcp.lan." // dhcp lan |
| 208 | + cmd += fmt.Sprintf(" && uci set %sdhcpv4=server", if3) |
| 209 | + cmd += fmt.Sprintf(" && uci set %sra=relay", if3) |
| 210 | + cmd += fmt.Sprintf(" && uci set %sdhcpv6=relay", if3) |
| 211 | + cmd += fmt.Sprintf(" && uci set %sndp=relay", if3) |
| 212 | + |
| 213 | + log.Info("Set dhcp wan6") |
| 214 | + // 增加 dhcp wan6 选项 |
| 215 | + cmd += fmt.Sprintf(" && uci set /etc/config/dhcp.wan6=dhcp") |
| 216 | + |
| 217 | + if4 := "/etc/config/dhcp.wan6." // dhcp wan6 |
| 218 | + cmd += fmt.Sprintf(" && uci set %sdhcpv4=server", if4) |
| 219 | + cmd += fmt.Sprintf(" && uci set %sra=relay", if4) |
| 220 | + cmd += fmt.Sprintf(" && uci set %sdhcpv6=relay", if4) |
| 221 | + cmd += fmt.Sprintf(" && uci set %sndp=relay", if4) |
| 222 | + cmd += fmt.Sprintf(" && uci set %smaster=1", if4) |
| 223 | + |
| 224 | + cmd += fmt.Sprintf(" && uci delete %sdns", if4) |
| 225 | + cmd += fmt.Sprintf(" && uci add_list %sdns=2606:4700:4700::1111", if4) |
| 226 | + cmd += fmt.Sprintf(" && uci add_list %sdns=2001:4860:4860::8888", if4) |
| 227 | + |
| 228 | + log.Info("Set dhcp wan") |
| 229 | + if5 := "/etc/config/dhcp.wan." // dhcp wan |
| 230 | + cmd += fmt.Sprintf(" && uci set %signore=1", if5) |
| 231 | + |
| 232 | + cmd += fmt.Sprintf(" && service network restart") |
| 233 | + s.RunCommand(cmd) |
| 234 | + log.Info("SetNetwork finished") |
| 235 | +} |
| 236 | + |
174 | 237 | func (s *SSHClass) CancelAutoLogin() { |
175 | 238 | log.Info("CancelAutoLogin is called") |
176 | 239 |
|
|
0 commit comments