[proofplan]
We show $X' = X^*$ (continuous linear functionals equal bounded linear functionals on a normed space) by proving both inclusions. Bounded implies continuous via an $\varepsilon$-$\delta$ argument at the origin. Continuous implies bounded by exhibiting a ball on which $|f| < 1$ and using linearity to bound the operator norm. The topological conclusion (2) is then immediate since both weak* topologies are defined by the same construction on the same set.
[/proofplan]
[step:Prove bounded linear functionals are continuous]
Let $f: X \to \mathbb{R}$ be linear with $\|f\|_{X^*} < \infty$.
It suffices to show continuity at $0$.
Let $\varepsilon > 0$ and set $\delta := \varepsilon / (\|f\|_{X^*} + 1)$.
For any $x \in X$ with $\|x\|_X < \delta$:
\begin{align*}
|f(x)| &\leq \|f\|_{X^*} \cdot \|x\|_X < \|f\|_{X^*} \cdot \delta < \varepsilon.
\end{align*}
Thus $f^{-1}((-\varepsilon, \varepsilon)) \supseteq \{x : \|x\|_X < \delta\}$, an open neighbourhood of $0$.
[/step]
[step:Prove continuous linear functionals are bounded]
Continuity at $0$ gives an open neighbourhood $U$ of $0$ with $|f(x)| < 1$ for all $x \in U$.
There exists $r > 0$ with $B(0, r) \subseteq U$.
For any $x$ with $\|x\|_X \leq 1$, the vector $(r/2)x$ satisfies $\|(r/2)x\|_X < r$, so $|f((r/2)x)| < 1$, giving $|f(x)| < 2/r$.
Taking the supremum: $\|f\|_{X^*} \leq 2/r < \infty$.
[/step]
[step:Conclude the topologies coincide]
By the previous two steps, $X' = X^*$ as sets.
Both $\sigma(X', X)$ and $\sigma(X^*, X)$ are the coarsest topology making $\operatorname{ev}_x: f \mapsto f(x)$ continuous for every $x \in X$.
Since they are the same construction on the same set, they produce the same topology.
[/step]