`trust proxy` 设置选项

中英双语

阅读 代理背后的 Express 了解更多信息。

类型

布尔值

如果是 true,则客户端的 IP 地址被理解为 X-Forwarded-* 标头中最左边的条目。

如果是false,则应用理解为直接面向互联网,客户端的IP地址来源于req.connection.remoteAddress。这是默认设置。

String
String containing comma-separated values
Array of strings

要信任的 IP 地址、子网或 IP 地址数组和子网。预配置的子网名称为:

  • loopback - 127.0.0.1/8::1/128
  • linklocal - 169.254.0.0/16fe80::/10
  • uniquelocal - 10.0.0.0/8172.16.0.0/12192.168.0.0/16fc00::/7

通过以下任一方式设置 IP 地址:

指定单个子网:

app.set('trust proxy', 'loopback')

指定子网和地址:

app.set('trust proxy', 'loopback, 123.123.123.123')

将多个子网指定为 CSV:

app.set('trust proxy', 'loopback, linklocal, uniquelocal')

将多个子网指定为数组:

app.set('trust proxy', ['loopback', 'linklocal', 'uniquelocal'])

指定时,IP 地址或子网将被排除在地址确定过程之外,并将离应用服务器最近的不受信任的 IP 地址确定为客户端的 IP 地址。

数字

信任来自前端代理服务器的 nth 跃点作为客户端。

函数

自定义信任实现。仅当您知道自己在做什么时才使用它。

app.set('trust proxy', function (ip) {
  if (ip === '127.0.0.1' || ip === '123.123.123.123') return true // trusted IPs
  else return false
})