在線教育網站項目第四步:deepseek騙我, WSL2不能創建兩個獨立的Ubuntu,但我們能實現實例互訪及外部訪問

一、說明

上一章折騰了半天,搞出不少問題,今天我們在deepseek的幫助下,完成多個獨立ubuntu24.04實例的安裝,并完成固定ip,實踐證明,deepseek不靠譜,浪費我2個小時時間,我們將在下面實現,其實網上有很多信息比較舊

計劃安裝實例已經端口IP分配表

服務器配置表
服務器順序服務器名IP地址端口主機名說明
1mysql192.168.1.15

3306; ssh:2221

mysql關系型數據庫
2redis6379;?ssh:2222非關系型數據庫
3kkfileview8012;?ssh:2223kkfileview

在線文件預覽

4elasticsearch9200;?ssh:2224elasticsearch搜索和數據分析模型
4kibana5601;?ssh:2224kibanaKibana?是為Elasticsearch設計的開源分析和可視化平臺
5minio

服務端口:9000

控制臺:9001

;?ssh:2225

minio對象存儲
6nacos

注冊中心:8848

控制臺:9848

;?ssh:2226

nacos動態服務發現、配置管理和服務管理平臺
7xxl-job-admin8080;?ssh:2227xxl-job-admin分布式任務調平臺
8

seata

;?ssh:2228seata分布式事務
9roncoo-education-gateway7700;?ssh:2229roncoo-education-gateway在線教育網關服務
9roncoo-education-system7710;?ssh:2229roncoo-education-system在線教育系統服務
9roncoo-education-user7720;?ssh:2229roncoo-education-user在線教育用戶服務
9roncoo-education-course
7730;?ssh:2229
roncoo-education-course在線教育課程服務
一共9臺服務器

推薦使用WSLMan 管理工具

Release v0.1.1.0 · jet2jet/WSLMan

二、安裝Ubuntu-24.04

1、建立配置文件.wslconfig

在宿主機win11的登錄用戶目錄下,建立文件.wslconfig,添加內容:

[experimental]
autoMemoryReclaim=gradual ?
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true

[boot]
systemd=true

2、選擇安裝新的分發

3、選擇ubuntu24.04?

4、安裝

安裝過程?

?安裝完成

5、啟動,添加用戶密碼

ip地址很有意思,192.168.1.15 是我主機的ip,也就是win11的地址,我們在上一篇文章中可不是這樣的, 剛才我們建立的9臺虛擬機ip地址都是一樣,據說宿主機可以通過localhost訪問所有的機器,這個就是添加了全局的.wslconfig有的效果,具體配置可以查資料,上面我們已經添加了

6、安裝ssh

修改默認登錄用戶為x58win
sudo vi /etc/wsl.conf
添加內容
[user]
default=x58win
[boot]
systemd=true

?重啟wsl

?

# 安裝
sudo apt-get update
sudo apt-get install openssh-server##有錯誤,ssh.socket 是 systemd 的套接字單元,用于按需啟動 SSH 服務(當有連接時啟動)
Could not execute systemctl:  at /usr/bin/deb-systemd-invoke line 148.
dpkg: error processing package openssh-server (--configure):installed openssh-server package post-installation script subprocess returned error exit status 1##解決方案
sudo systemctl stop ssh.socket      # 停止套接字
sudo systemctl disable ssh.socket   # 禁用開機啟動## 修改端口
sudo vi /etc/ssh/sshd_config
#Port 22 改為
Port 2220sudo systemctl start ssh
sudo systemctl status ssh
sudo systemctl enable ssh

x58win@x58:~$ sudo vi /etc/ssh/sshd_config
x58win@x58:~$
x58win@x58:~$ sudo systemctl start ssh
x58win@x58:~$ sudo systemctl status ssh
● ssh.service - OpenBSD Secure Shell server
? ? ?Loaded: loaded (/usr/lib/systemd/system/ssh.service; enabled; preset: enabled)
? ? ?Active: active (running) since Wed 2025-03-19 18:19:16 CST; 10s ago
? ? ? ?Docs: man:sshd(8)
? ? ? ? ? ? ?man:sshd_config(5)
? ? Process: 409 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
? ?Main PID: 411 (sshd)
? ? ? Tasks: 1 (limit: 9510)
? ? ?Memory: 1.2M (peak: 1.6M)
? ? ? ? CPU: 48ms
? ? ?CGroup: /system.slice/ssh.service
? ? ? ? ? ? ?└─411 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"

Mar 19 18:19:16 x58 systemd[1]: Starting ssh.service - OpenBSD Secure Shell server...
Mar 19 18:19:16 x58 sshd[411]: Server listening on 0.0.0.0 port 2220.
Mar 19 18:19:16 x58 sshd[411]: Server listening on :: port 2220.
Mar 19 18:19:16 x58 systemd[1]: Started ssh.service - OpenBSD Secure Shell server.
x58win@x58:~$ sudo systemctl enable ssh
Synchronizing state of ssh.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable ssh
x58win@x58:~$

x58win@x58:~$ sudo ss -tulpn | grep ':2220'
tcp ? LISTEN 0 ? ? ?128 ? ? ? ? ? 0.0.0.0:2220 ? ? ?0.0.0.0:* ? ?users:(("sshd",pid=411,fd=3))
tcp ? LISTEN 0 ? ? ?128 ? ? ? ? ? ? ?[::]:2220 ? ? ? ? [::]:* ? ?users:(("sshd",pid=411,fd=4))

測試?

在win11 測試

ssh x58win@localhost -p 2220

PS C:\Windows\system32> ssh x58win@localhost -p 2220
The authenticity of host '[localhost]:2220 ([127.0.0.1]:2220)' can't be established.
ED25519 key fingerprint is SHA256:OvWuU6KZCq7AyIGzUwvNGsBwbnr3MlmnQ6knrTs9lwE.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? yes
Warning: Permanently added '[localhost]:2220' (ED25519) to the list of known hosts.
x58win@localhost's password:
Welcome to Ubuntu 24.04.2 LTS (GNU/Linux 6.6.75.1-microsoft-standard-WSL2 x86_64)

?* Documentation: ?https://help.ubuntu.com
?* Management: ? ? https://landscape.canonical.com
?* Support: ? ? ? ?https://ubuntu.com/pro

?System information as of Wed Mar 19 18:23:50 CST 2025

? System load: ?0.0 ? ? ? ? ? ? ? ? Processes: ? ? ? ? ? ? 29
? Usage of /: ? 0.1% of 1006.85GB ? Users logged in: ? ? ? 1
? Memory usage: 5% ? ? ? ? ? ? ? ? ?IPv4 address for eth0: 192.168.1.15
? Swap usage: ? 0%

?* Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
? ?just raised the bar for easy, resilient and secure K8s cluster deployment.

? ?https://ubuntu.com/engage/secure-kubernetes-at-the-edge
x58win@x58:~$ ls

在其它局域網,非宿主機win11

ssh x58win@192.168.1.15 -p 2220
# 就這樣是不能連接的,有防火墻打開2220轉發
New-NetFirewallRule -DisplayName "WSL2 x58 ssh" -Direction Inbound -LocalPort 2220 -Action Allow -Protocol TCP
netsh interface portproxy show v4tov4

C:\Users\x230win10>ssh x58win@192.168.1.15 -p 2220
The authenticity of host '[192.168.1.15]:2220 ([192.168.1.15]:2220)' can't be established.
ED25519 key fingerprint is SHA256:OvWuU6KZCq7AyIGzUwvNGsBwbnr3MlmnQ6knrTs9lwE.
This key is not known by any other names.
Are you sure you want to continue connecting (yes/no/[fingerprint])? y
Please type 'yes', 'no' or the fingerprint: yes
Warning: Permanently added '[192.168.1.15]:2220' (ED25519) to the list of known hosts.
x58win@192.168.1.15's password:
Welcome to Ubuntu 24.04.2 LTS (GNU/Linux 6.6.75.1-microsoft-standard-WSL2 x86_64)

?* Documentation: ?https://help.ubuntu.com
?* Management: ? ? https://landscape.canonical.com
?* Support: ? ? ? ?https://ubuntu.com/pro

?System information as of Wed Mar 19 18:36:44 CST 2025

? System load: ?0.03 ? ? ? ? ? ? ? ?Processes: ? ? ? ? ? ? 34
? Usage of /: ? 0.1% of 1006.85GB ? Users logged in: ? ? ? 1
? Memory usage: 5% ? ? ? ? ? ? ? ? ?IPv4 address for eth0: 192.168.1.15
? Swap usage: ? 0%

?* Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
? ?just raised the bar for easy, resilient and secure K8s cluster deployment.

? ?https://ubuntu.com/engage/secure-kubernetes-at-the-edge
Last login: Wed Mar 19 18:23:51 2025 from 127.0.0.1
x58win@x58:~$

?好,OK,搞了不少時間,那個ssh.socket的錯誤,在ubuntu 22上直接顯示是這個錯誤,而ubuntu24上沒有指名,ssh是必須安裝的所以我們先裝了

7、安裝docker和docker-compose

按照前面的文章安裝就行

在線教育網站項目第二步 :學習Vue3 + Nuxt3+springcloud,服務器為ubuntu24.04-CSDN博客https://blog.csdn.net/jiangkp/article/details/145995259

8、導出發行版

先expert出來,然后再import

選個目錄,如果啟動了,需要shutdown WSL?

點擊ok開始expert ,abort是停止運行

?最后變為close,直接關閉即可

9、注銷Ubuntu-24.04

注銷掉就都沒了,可以回去看看那個appdata目錄下的東西都沒有

原來安裝的發行版沒有了?

目錄下了也沒有東西了

二、安裝9臺的服務器

mysql
redis
kkfileview
elasticsearch
minio
nacos
xxl-job-admin
seata
roncoo-education

選擇上面導出的虛擬機,分發名字自己要安裝虛擬機名字,自己要安裝的地址

?開始安裝

?完成

??

?下面再建立8個,完全為了測試

三、配置各個實例

1、進入實例

先選下用戶

比方說進入redis,看下面

2、查點想查的東西?

x58win@x58:~$ docker --version
Docker version 28.0.1, build 068a01e
x58win@x58:~$ docker-compose --version
Docker Compose version v2.33.1
x58win@x58:~$ sudo systemctl status ssh
[sudo] password for x58win:
● ssh.service - OpenBSD Secure Shell server
? ? ?Loaded: loaded (/usr/lib/systemd/system/ssh.service; enabled; preset: enabled)
? ? ?Active: active (running) since Wed 2025-03-19 19:16:44 CST; 49s ago
? ? ? ?Docs: man:sshd(8)
? ? ? ? ? ? ?man:sshd_config(5)
? ? Process: 198 ExecStartPre=/usr/sbin/sshd -t (code=exited, status=0/SUCCESS)
? ?Main PID: 214 (sshd)
? ? ? Tasks: 1 (limit: 9510)
? ? ?Memory: 2.1M (peak: 2.5M)
? ? ? ? CPU: 91ms
? ? ?CGroup: /system.slice/ssh.service
? ? ? ? ? ? ?└─214 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"

Mar 19 19:16:44 x58 systemd[1]: Starting ssh.service - OpenBSD Secure Shell server...
Mar 19 19:16:44 x58 sshd[214]: Server listening on 0.0.0.0 port 2220.
Mar 19 19:16:44 x58 sshd[214]: Server listening on :: port 2220.
Mar 19 19:16:44 x58 systemd[1]: Started ssh.service - OpenBSD Secure Shell server.

3、修改主機名

sudo vi /etc/wsl.conf[network]
hostname = mysql  # 替換為你想要的主機名
generateHosts = false           # 阻止 WSL 自動生成 hosts 文件

更新?/etc/hosts?添加互相解析

sudo vi /etc/hosts

將x58 改為mysql

4、修改ssh端口


sudo sed -i 's/Port 2220/Port 2221/' /etc/ssh/sshd_config對應端口在這里,22開頭的就是ssh地址
"mysql8" = 2221,3306
"redis" = 2222,6379
"kkfileview" = 2223,8012
"elasticsearch" = 2224,9200,5601
"minio" = 2225,9000,9001
"nacos" = 2226,8848,9848
"xxl-job-admin" = 2227,8080
"seata" = 2228,8091
"roncoo-education" = 2229,7700,7710,7720,7730

重啟?

PS C:\Windows\system32> ssh x58win@192.168.1.15 -p 2221
The authenticity of host '[192.168.1.15]:2221 ([192.168.1.15]:2221)' can't be established.
ED25519 key fingerprint is SHA256:OvWuU6KZCq7AyIGzUwvNGsBwbnr3MlmnQ6knrTs9lwE.
This host key is known by the following other names/addresses:
? ? C:\Users\x230win10/.ssh/known_hosts:1: [192.168.1.15]:2220
Are you sure you want to continue connecting (yes/no/[fingerprint])? y
Please type 'yes', 'no' or the fingerprint: yes
Warning: Permanently added '[192.168.1.15]:2221' (ED25519) to the list of known hosts.
x58win@192.168.1.15's password:
Welcome to Ubuntu 24.04.2 LTS (GNU/Linux 6.6.75.1-microsoft-standard-WSL2 x86_64)

?* Documentation: ?https://help.ubuntu.com
?* Management: ? ? https://landscape.canonical.com
?* Support: ? ? ? ?https://ubuntu.com/pro

?System information as of Wed Mar 19 19:55:45 CST 2025

? System load: ?0.23 ? ? ? ? ? ? ? ?Processes: ? ? ? ? ? ? 31
? Usage of /: ? 0.2% of 1006.85GB ? Users logged in: ? ? ? 1
? Memory usage: 5% ? ? ? ? ? ? ? ? ?IPv4 address for eth0: 192.168.1.15
? Swap usage: ? 0%

?* Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
? ?just raised the bar for easy, resilient and secure K8s cluster deployment.

? ?https://ubuntu.com/engage/secure-kubernetes-at-the-edge
Last login: Wed Mar 19 18:51:19 2025 from 192.168.1.8
x58win@mysql:~$ hostname
mysql

5、每個ubuntu24.04實例都要來一遍?

四、配置Windows防火墻和端口轉發

創建腳本 MakeWslPort.ps1

# powershell.exe -ExecutionPolicy Bypass -File "D:\wsl\Script\MakeWslPort.ps1"# 腳本功能:為WSL實例分配固定IP并配置端口轉發
$wslInstances = @("mysql", "redis","kkfileview","elasticsearch","minio","nacos","xxl-job-admin","seata","roncoo-education")
$ports = 80,443,2221,2222,2223,2224,2225,2226,2227,2228,2229,3306,6379,8012,9200,5601,9000,9001,8848,9848,8080,7700,7710,7720,7730netsh interface portproxy reset # 清除所有端口轉發規則# 這里不需要添加
#foreach ($port in $ports) {
#	echo $port
#	netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=$port #connectaddress= 192.168.1.15 connectport=$port # netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=443 #connectaddress=192.168.1.100 connectport=443
}# 開放 TCP 端口 
New-NetFirewallRule -DisplayName "WebServer" -Direction Inbound -Protocol TCP -LocalPort 80,443,2221-2229,3306,6379,8012,9200,5601,9000,9001,8848,9848,8080,7700,7710,7720,7730 -Action Allownetsh interface portproxy show v4tov4

# 在win11 管理員ps命令行下?

powershell.exe -ExecutionPolicy Bypass -File "D:\wsl\Script\MakeWslPort.ps1"

    本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
    如若轉載,請注明出處:http://www.pswp.cn/news/898391.shtml
    繁體地址,請注明出處:http://hk.pswp.cn/news/898391.shtml
    英文地址,請注明出處:http://en.pswp.cn/news/898391.shtml

    如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

    相關文章

    CMake 保姆級教程

    CMake 是一個跨平臺的構建工具,用于生成適合不同平臺和編譯器的構建系統文件(如 Makefile 或 Visual Studio 項目文件)。 在 Windows 下使用 CMake 構建項目時,CMake 會根據 CMakeLists.txt 文件生成適合 Windows 的構建系統文件&…

    zabbix數據庫溯源

    0x00 背景 zabbix數據庫如果密碼泄露被登錄并新增管理員如何快速發現?并進行溯源? 本文介紹數據庫本身未開啟access log的情況。 0x01 實踐 Mysql 數據庫查insert SELECT * FROM sys.host_summary_by_statement_type where statement like %insert% 查…

    Spring Boot集成PageHelper:輕松實現數據庫分頁功能

    Spring Boot集成PageHelper:輕松實現數據庫分頁功能 1. 為什么需要分頁? 分頁是處理大數據量查詢的核心技術,其重要性體現在: 性能優化:避免單次查詢返回過多數據導致內存溢出或響應延遲。用戶體驗:前端展…

    Spring Cloud之負載均衡之LoadBalance

    目錄 負載均衡 問題 步驟 現象 什么是負載均衡? 負載均衡的一些實現 服務端負載均衡 客戶端負載均衡 使用Spring Cloud LoadBalance實現負載均衡 負載均衡策略 ?編輯 ?編輯LoadBalancer原理 服務部署 準備環境和數據 服務構建打包 啟動服務 上傳J…

    數據無憂:自動備份策略全解析

    引言 在信息化飛速發展的今天,數據已成為個人、企業乃至國家最為寶貴的資產之一。無論是日常辦公文檔、科研數據、客戶資料,還是個人隱私信息,一旦丟失或損壞,都可能帶來不可估量的損失。因此,備份文件作為數據安全的…

    Latex2024安裝教程(附安裝包)Latex2024詳細圖文安裝教程

    文章目錄 前言一、Latex2024下載二、Texlive 2024安裝教程1.準備安裝文件2.啟動安裝程序3.配置安裝選項4.開始安裝5.安裝完成6.TeX Live 2024 安裝后確認 三、Texstudio 安裝教程1.準備 Texstudio 安裝2.啟動 Texstudio 安裝向導3.選擇安裝位置4.等待安裝完成5.啟動 Texstudio6…

    C++ 語法之函數和函數指針

    在上一章中 C 語法之 指針的一些應用說明-CSDN博客 我們了解了指針變量&#xff0c;int *p;取變量a的地址這些。 那么函數同樣也有個地址&#xff0c;直接輸出函數名就可以得到地址&#xff0c;如下&#xff1a; #include<iostream> using namespace std; void fun() …

    centos【rockylinux】安裝【supervisor】的注意事項【完整版】

    重新加載 systemd 配置推薦使用pip的方式安裝 pip install supervisor 第二步&#xff1a;添加supervisord.conf配置文件 [unix_http_server] file/tmp/supervisor.sock ; UNIX socket 文件&#xff0c;supervisorctl 會使用 ;chmod0700 ; socket 文件的…

    Spring Cloud Gateway 使用ribbon以及nacos實現灰度發布

    1、Spring Cloud Gateway配置文件 gateway:userId-limit: 1000 agent-bff:ribbon:NFLoadBalancerRuleClassName: com.anlitech.gateway.gray.GrayRule operator-bff:ribbon:NFLoadBalancerRuleClassName: com.anlitech.gateway.gray.GrayRule spring:cloud:gateway:locator:en…

    關于“碰一碰發視頻”系統的技術開發文檔框架

    以下是關于“碰一碰發視頻”系統的技術開發文檔框架&#xff0c;涵蓋核心功能、技術選型、開發流程和關鍵模塊設計&#xff0c;幫助您快速搭建一站式解決方案 --- 隨著短視頻平臺的興起&#xff0c;用戶的創作與分享需求日益增長。而如何讓視頻分享更加便捷、有趣&#xff0c…

    基于django+vue的購物商城系統

    開發語言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.8數據庫&#xff1a;mysql 5.7數據庫工具&#xff1a;Navicat11開發軟件&#xff1a;PyCharm 系統展示 系統首頁 熱賣商品 優惠資訊 個人中心 后臺登錄 管理員功能界面 用戶管理 商品分類管理…

    Ardunio 連接OLED觸摸屏(SSD1106驅動 4針 IIC通信)

    一、準備工作 1、硬件 UNO R3 &#xff1a;1套 OLED觸摸屏&#xff1a;1套 導線諾干 2、軟件 arduino 二、接線 UNO R3OLED5VVCCGNDGNDA5SCLA4SDA 腳位如下圖所示&#xff1a; Uno R3腳位圖 觸摸屏腳位圖 查閱顯示屏的驅動規格&#xff1a;通常顯示屏驅動芯片有SSD1306,SH110…

    機器人技能列表

    一、機器人制作基礎入門 &#xff08;一&#xff09;機器人概述 1.機器人的定義與分類 2.機器人的發展歷程與現狀 3.機器人在各領域的應用案例 &#xff08;二&#xff09;必備工具與材料 4.常用電子工具介紹&#xff08;萬用表、電烙鐵等&#xff09; 5.機械加工工具&…

    07. 面向對象高級(2)_設計模式

    什么是設計模式 一個問題通常有種解法&#xff0c;其中肯定有一種解法是最優的&#xff0c;這個最優的解法被人總結出來了&#xff0c;稱之為設計模式。 設計模式有20多種&#xff0c;對應20多種軟件開發中會遇到的問題。 關于設計模式&#xff0c;主要學什么&#xff1f; 解…

    【面試場景題-Redis中String類型和map類型的區別】

    今天在面試中碰到一個場景題&#xff1a;在 Redis 中存儲 100 萬用戶數據時&#xff0c;使用 String 類型和 Hash&#xff08;Map&#xff09;類型的主要區別是什么&#xff1f;體現在以下幾個方面&#xff1a; 1. 存儲結構與內存占用 String 類型 存儲方式&#xff1a;每個用…

    計算機操作系統和進程

    目錄 一. 操作系統 1. 操作系統的概念 2. 操作系統的功能 二. 進程 1. 進程的概念 2. 進程在系統中的管理 3. PBC &#xff08;1&#xff09;pid &#xff08;2&#xff09;內存指針 &#xff08;3&#xff09;文件標識符 4. 資源分配 5. 進程的調度 &#xff08;…

    【Matlab GUI】封裝matlab GUI為exe文件

    注&#xff1a;封裝后的exe還是需要有matlab環境才能運行 &#xff08;1&#xff09;安裝MCRinstaller.exe文件&#xff0c;在matlab安裝目錄下的toolbox/compiler/deploy/win64文件夾里 &#xff08;2&#xff09;安裝完MCRinstaller.exe&#xff0c;字命令窗口輸入&#x…

    登山第二十梯:無人機實時自主探索——我是一只小小小鳥

    文章目錄 一 摘要 二 資源 三 內容 一 摘要 自主探索是無人機 &#xff08;UAV&#xff09; 各種應用的基本問題。最近&#xff0c;基于 LiDAR 的探索因其能夠生成大規模環境的高精度點云地圖而受到廣泛關注。雖然點云本身就為導航提供了信息&#xff0c;但許多現有的勘探方…

    JAVA序列化與反序列化URLDNS鏈CC1鏈

    1、序列化的實現 java序列化的是對象屬性的&#xff0c;只有實現了Serializable或者Externalizable接口的類的對象才能被序列化為字節序列。&#xff08;不是則會拋出異常&#xff09;&#xff0c;靜態成員變量是屬于類的&#xff0c;所以靜態成員變量是不能被序列化的&#x…

    SAP-ABAP: 采購申請創建(PR)BAPI_PR_CREATE 技術指南-詳解

    BAPI_PR_CREATE 技術指南 用途&#xff1a;通過 RFC 接口創建 SAP 采購申請&#xff08;PR&#xff09;&#xff0c;支持自動化集成與批量處理。 一、功能概覽 類別說明核心功能創建標準采購申請、預留轉采購申請&#xff0c;支持多行項目及賬戶分配。集成場景與 MRP 系統、外…