本文目录导读:

Shell脚本 (Linux/Mac)
#!/bin/bash
# 生成1024-65535之间的随机端口(避开系统保留端口)
random_port=$(shuf -i 1024-65535 -n 1)
echo $random_port
# 或者使用更可靠的方法,检查端口是否被占用
generate_port() {
while true; do
port=$((RANDOM % (65535-1024) + 1024))
# 检查端口是否被占用
if ! ss -tlnp 2>/dev/null | grep -q ":$port "; then
echo $port
return
fi
done
}
# 使用示例
port=$(generate_port)
echo "Generated port: $port"
Python脚本
import random
import socket
def get_random_port(min_port=1024, max_port=65535):
"""生成一个随机的可用端口"""
while True:
port = random.randint(min_port, max_port)
# 检查端口是否可用
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
try:
s.bind(('localhost', port))
return port
except OSError:
continue # 端口被占用,重试
# 生成端口
random_port = get_random_port()
print(f"Random port: {random_port}")
# 单次生成(不检查可用性)
def quick_port():
return random.randint(1024, 65535)
print(f"Quick port: {quick_port()}")
Node.js脚本
const net = require('net');
// 方法1:直接生成随机端口(不检查)
function generateRandomPort() {
return Math.floor(Math.random() * (65535 - 1024) + 1024);
}
console.log('Random port:', generateRandomPort());
// 方法2:检查端口可用性
function getAvailablePort() {
return new Promise((resolve, reject) => {
const server = net.createServer();
server.listen(0, () => { // 0表示系统自动分配可用端口
const port = server.address().port;
server.close(() => resolve(port));
});
server.on('error', reject);
});
}
// 使用
(async () => {
const port = await getAvailablePort();
console.log('Available port:', port);
})();
Windows批处理脚本
@echo off
:: 生成1024-65535之间的随机端口
set /a port=%RANDOM% * (65535 - 1024) / 32768 + 1024
echo Random port: %port%
:: 如果需要检查端口可用性(需要PowerShell)
powershell -Command "& {
$port = Get-Random -Minimum 1024 -Maximum 65535;
$connection = Test-NetConnection -ComputerName localhost -Port $port -WarningAction SilentlyContinue;
while ($connection.TcpTestSucceeded) {
$port = Get-Random -Minimum 1024 -Maximum 65535;
$connection = Test-NetConnection -ComputerName localhost -Port $port -WarningAction SilentlyContinue;
}
Write-Output $port
}"
Go语言脚本
package main
import (
"fmt"
"math/rand"
"net"
"time"
)
func main() {
// 方法1:简单随机
rand.Seed(time.Now().UnixNano())
simplePort := rand.Intn(65535-1024) + 1024
fmt.Printf("Simple random port: %d\n", simplePort)
// 方法2:获取可用端口
port := getAvailablePort()
fmt.Printf("Available port: %d\n", port)
}
func getAvailablePort() int {
for {
port := rand.Intn(65535-1024) + 1024
addr := fmt.Sprintf("localhost:%d", port)
listener, err := net.Listen("tcp", addr)
if err == nil {
listener.Close()
return port
}
}
}
使用建议
- 开发环境:推荐使用1024-65535范围
- 生产环境:建议使用系统自动分配(端口0)
- Docker/容器:考虑使用环境变量配置
- 安全考虑:避免使用知名端口(<1024)
选择哪种方法取决于你的使用场景和技术栈。
版权声明:NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
足球直播
足球直播
足球直播
篮球直播
篮球直播
篮球直播
NBA直播
NBA直播
NBA直播
CBA直播
CBA直播
CBA直播
亚冠直播
亚冠直播
亚冠直播
欧冠直播
欧冠直播
欧冠直播
英超直播
英超直播
英超直播
西甲直播
西甲直播
西甲直播
中超直播
中超直播
中超直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
曼联直播
曼联直播
曼联直播
日职联直播
日职联直播
日职联直播
澳超直播
澳超直播
澳超直播
阿森纳直播
阿森纳直播
阿森纳直播
足球直播
足球直播
足球直播
NBA直播
NBA直播
NBA直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
欧冠直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
足球直播
足球直播
足球直播
足球直播
足球直播
英超直播
英超直播
英超直播
英超直播
英超直播
篮球直播
篮球直播
篮球直播
篮球直播
篮球直播
CBA直播
CBA直播
CBA直播
CBA直播
CBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
NBA直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播
中超直播